[英]How do I get the cell value from a datagridview using row index and column index in c#?
[英]How to get correct datagridview valid row/column index in MDIParent in c#
我在窗体上有一个datagridview,单击该窗体时,它会为我提供单击的正确行/列索引:
单击验证[第三列,第一行,给出以上内容]。 但是,当从MDI父级调用此表单时,单击相同的第三列,第一行(验证)将得到以下结果:
以下是该表单的背后代码:
var result = new DAO().RetrieveAllProjects().Select(r => new { r.Name }).ToList();
dataGridView1.DataSource = result;
DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
btn.HeaderText = "";
btn.Text = "View/Edit";
btn.Name = "edit";
btn.UseColumnTextForButtonValue = true;
DataGridViewButtonColumn btn2 = new DataGridViewButtonColumn();
btn2.HeaderText = "";
btn2.Text = "Verify";
btn2.Name = "verify";
btn2.UseColumnTextForButtonValue = true;
dataGridView1.Columns.Add(btn);
dataGridView1.Columns.Add(btn2);
dataGridView1.Columns[0].Width = 290;
dataGridView1.AutoSize = true;
dataGridView1.CellClick += dataGridView1_CellClick;
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show(string.Format("ColumnIndex:{0}, RowIndex: {1}", e.ColumnIndex, e.RowIndex));
}
它是通过mdi父级这样调用的:
projectsListForm pLF = new projectsListForm();
pLF.MdiParent = this;
pLF.Show();
我如何确保在MDI父项上突出显示正确的行/列
由于某些原因,使用MdiParent时,dataGridView1中发生两轮数据绑定(触发了DataGridView DataBindingComplete
事件)。 “名称”列将不必要地删除和添加(DataGridView ColumnAdded
和ColumnRemoved
事件)。 要停止此行为,我在设置DataSource后禁用了列自动生成:
dataGridView1.DataSource = ...;
dataGridView1.AutoGenerateColumns = false;
一个更安全的选择是按名称而不是按索引使用列
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.