private void GetSelect()
{
  txtCustomerID.Text=dataTable.Rows[dataGridCustomers.CurrentCell.RowNumber]["CustomerID"].ToString();
  ....
}
---------------------------------
private void FillGrid()
{
dataTable=myDataSet.Tables[0];
dataGridCustomers.DataSource=dataTable;
}

解决方案 »

  1.   

    private void dataGridCustomers_Click(object sender, System.EventArgs e)
    {
    GetSelect();
    }
      

  2.   

    那我如果用上下键控制呢?就没有click事件了呀。datagrid有没有表示当前选择行变化的事件呢?
      

  3.   


     如下:
     
     private void dataGrid1_Click(object sender, System.EventArgs e)
    {
             if(ds.Tables["dyw"].Rows.Count!=0) 
    {
          textBox1.Text=ds.Tables["dyw"].Rows[dataGrid1.CurrentRowIndex][列名].ToString().Trim();         //...... }
    } :)
      

  4.   

    我写的那个private void GetSelect()方法,我只是在click里面使用了,但你完全可以在别的事件里面使用 。只要当前选中了某行(上下键选择也一样要发生当前行的变化)
      

  5.   


      to:那我如果用上下键控制呢?就没有click事件了呀。datagrid有没有表示当前选择行变化的事件呢?private void dataGrid1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
         //你可以在这里定义上下键选择(一个思路)
    } :)
      

  6.   

    我的datagrid的数据源是个dataview,没有rows属性呀。
    我在另一个类中定义的方法,返回dataview。所以在有datagrid的页面里只能对datagrid操作
    我怎么才能得到选中的那行呀?
      

  7.   


     你试一下这样行不行(我没试): dv是视图: textBox1.Text=dv.Table.Rows[dataGrid1.CurrentRowIndex][列名].ToString().Trim();
     
     :)
      

  8.   

    CurrencyManager cm;
    cm=(CurrencyManager)dataGrid1.BindingContext[dataGrid1.DataSource];
    DataRowView drv;
    drv =(DataRowView)cm.Current;
    DataRow myDataRow = drv.Row;
    this.TextBox1.Text=myDataRow[0].Tostring();
      

  9.   

    以上代码加在DataGrid的SelectedIndexChanged事件中