【发布时间】:2017-02-05 20:38:51
【问题描述】:
我对下面的代码块有问题,我使用代码块将数据网格上选定行的数据链接到文本框的目的属于。我将下面的代码添加到 Datagridview 内容中。
大多数情况下它可以工作,但是当您第一次单击数据网格上的“姓名”和“姓氏”单元格时,它不会将数据链接/传输到文本框。然而,“姓”之后的其他列效果很好。同样,当程序运行时,点击“姓名”和“姓氏”列后,它就是传输/链接。
是否知道为什么会发生这种情况或如何编辑代码?
private void dgvEkip_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if(e.RowIndex >= 0)
{
DataGridViewRow row = this.dgvEkip.Rows[e.RowIndex];
txtEkipIsim.Text = row.Cells["Isim"].Value.ToString(); //cell for "name"
txtEkipSoyisim.Text = row.Cells["Soyisim"].Value.ToString(); //cell for "surname"
dtpEkipDogum.Text = row.Cells["DogumTarihi"].Value.ToString();
txtEkipTelefon.Text = row.Cells["Telefon"].Value.ToString();
txtEkipEposta.Text = row.Cells["ePosta"].Value.ToString();
cbEkipSehir.Text = row.Cells["Sehir"].Value.ToString();
txtEkipAdres.Text = row.Cells["Adres"].Value.ToString();
dtpEkipKayitTarihi.Text = row.Cells["KayitTarihi"].Value.ToString();
}
}
这里还有一个截图:
非常感谢,努里。
【问题讨论】:
-
单步执行时会发生什么?您是否尝试过在 Visual Studio 内的控制台窗口中打印出值(即
Debug.Print(row.Cells["Isim"].Value.ToString())? -
我不明白为什么它不起作用,但是,您可以将 DataGridView.SelectionMode 设置为 FullRowSelect 并使用 RowEnter 事件(不要忘记在填充 DataGridView 后调用此事件一次)。
-
尝试订阅其他事件,如 RowSelected、RowHightlighted、CellFocused
标签: c# winforms datagrid textbox