Using the TableAdapter component will appear easy for novice coders but unless you study them they will present you with roadblocks time and time again.
With that said, the trick is to work against the DataSource of the ListBox which is a BindingSource and the BindingSource DataSource is your DataSet.
In the following example we cast accordingly to the productsBindingSource.DataSource to get at ProductsDataTable which is what is set to the ListBox (notice I don't even touch the ListBox here).
private void Form1_Load(object sender, EventArgs e)
{
productsTableAdapter.Fill(northWindDataSet.Products);
string[] products = ((NorthWindDataSet)productsBindingSource.DataSource)
.Products.Select(p => p.ProductName).ToArray();
textBox1.Text = products[0];
}
Knowing this we can later assign the current item/product to the TextBox in a Button Click event.
private void button1_Click(object sender, EventArgs e)
{
ProductsRow product = ((NorthWindDataSet)productsBindingSource.DataSource)
.Products[productsBindingSource.Position];
textBox1.Text = product.ProductName;
}