关于dataGridView中选中一行记录 并把这条记录内的每个字段的数据传到不同的textBox内
我现在已经查出数据并将其显示于dataGridView内 现在我选中一条记录 比如这条记录内有 学号 姓名 成绩 这三个字段我在dataGridView旁边放了三个TextBox
我想实现当我选中后 在那个三TextBox内分别显示 我选中那条记录的三个字段 学号 姓名 成绩的值
int index = this.dataGridView1.SelectedRows[0].Index;
DataTable table=(DataTable)this.dataGridView1.DataSource;
if (index >= 0 && index < table.Rows.Count)
{
textBox2.Text = table.Rows[index]["学号"].ToString();
}
我是这样写的 但报错说 起出索引范围 也许是我的思路有错 请高手帮我看看那里错了 或者有其它写法
--------------------编程问答-------------------- 我这里有个这样的例子 --------------------编程问答-------------------- 这是由于没有选中当前行造成的,可以用CurrentRow
try.
if (this.dataGridView1.CurrentRow.Index > -1)
{
textBox2.Text = table.Rows[index][ "学号 "].ToString();
}
一般我这样写,而不是直接找DataTable中的第几行,因为排序后可能对不上了
if (this.dataGridView1.CurrentRow.Index > -1)--------------------编程问答-------------------- int index = this.dataGridView1.CurrentRow.Index; --------------------编程问答-------------------- 写入代码:TextBox1.DataBindings.Add(相应表名.相应列名);
{
DataRowView drv = (DataRowView)this.dataGridView1.CurrentRow.DataBoundItem;
textBox2.Text = drv.Row["学号"].ToString();
}
其他两个TextBox使用相同的方法即可。 --------------------编程问答-------------------- 2 楼 --------------------编程问答-------------------- private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
txtCName.Text = Convert.ToString(datagridview1[0, dataGridView1.CurrentCell.RowIndex].Value).Trim();
txtCName.Text = Convert.ToString(datagridview1[1, dataGridView1.CurrentCell.RowIndex].Value).Trim();
txtCName.Text = Convert.ToString(datagridview1[2, dataGridView1.CurrentCell.RowIndex].Value).Trim();
}
其中,0,1,2指的是第几列,从0开始算起 --------------------编程问答-------------------- 更正一哈,呵呵
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
textbox1.Text = Convert.ToString(datagridview1[0, dataGridView1.CurrentCell.RowIndex].Value).Trim();
textbox2.Text = Convert.ToString(datagridview1[1, dataGridView1.CurrentCell.RowIndex].Value).Trim();
textbox3.Text = Convert.ToString(datagridview1[2, dataGridView1.CurrentCell.RowIndex].Value).Trim();
}
--------------------编程问答-------------------- 试试这个,应该可以实现你的需求:
textbox1.Text = datagridview1.Rows[datagridview1.CurrentCellAddress.Y].Cells["学号"].Value.ToString().Trim(); --------------------编程问答-------------------- 4樓說得不錯,我覺得DataBindings最好用
补充:.NET技术 , C#