我在Windows窗体上有一个DataGridView
(Selectionmode: FullRowSelect
)和一些文本框。我希望单击(或双击)的行的内容显示在文本框中。
我试过这个代码:
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show("Cell Double_Click event calls");
int rowIndex = e.RowIndex;
DataGridViewRow row = dataGridView1.Rows[rowIndex];
textBox5.Text = row.Cells[1].Value;
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int rowIndex = e.RowIndex;
DataGridViewRow row = dataGridView1.Rows[rowIndex];
textBox5.Text = dataGridView1.Rows[1].Cells[1].Value.ToString();// row.Cells[1].Value;
}
还有许多其他的文本框,但主要的问题是似乎没有一个事件被触发,我应该使用什么事件来触发,或者DataGridView
的某个属性可能设置错了?
6条答案
按热度按时间rfbsl7qr1#
由于您使用的是FullRowSelect选择模式,因此可以使用SelectionChanged事件。然后,在处理程序内部,您可以访问SelectedRows属性并从中获取数据。示例:
您还可以遍历列集合,而不是键入索引...
x759pob22#
您可以尝试此单击事件
gkl3eglg3#
首先获取一个标签,将其可见性设置为false,然后在DataGridView_CellClick事件上编写以下内容
7kjnsjlb4#
您应该检查设计器文件。打开Form1.Designer.cs并找到此行:
展开它,你会看到很多代码,所以如果没有放置它,检查这一行是否在datagridview1控件内部。
希望能有所帮助。
x7yiwoj45#
简单的解法如下,这是对vale解法的改进。
请注意,对于其他读者来说,要使上面的代码工作,应该使用
FullRowSelect
数据网格视图选择模式。如果选择了两行以上,您可以扩展此模式以给予消息。ffx8fchx6#
您可以使用SelectionChanged事件。CurrentRow。DataBoundItem将给予绑定项。
SelectionMode属性应为整行选择。
变量项=([转换为绑定项])数据网格位置.当前行.数据绑定项;tbxEditLocation.文本=项目.名称;