数据网格视图按钮列的问题
本文关键字:问题 按钮 视图 数据网 网格 数据 | 更新日期: 2023-09-27 18:07:23
有谁能帮帮忙吗?
我有一个DataGridView与三列和一个按钮列。
如果我点击按钮列,那么该行中的所有值都应该被转移到另一个表单。
注意:我已经实现了下面的点击事件处理程序:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
}
除了使用单元格单击事件之外,还有其他选择吗?
多谢…
尝试CellContentClick事件。
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellcontentclick.aspx单击单元格内容时发生此事件。当按钮单元格或复选框单元格有焦点时,用户按下并释放空格键时也会发生,如果在按空格键时单击单元格内容,则这些单元格类型将发生两次。
编辑:CellContentClick事件提供了一个DataGridViewCellEventArgs参数,其中包含被单击的确切列和行。从我提供的链接中,我可以组合一个简短的例子。我假设您要传递的值是字符串,并且位于第2、3和4列(分别为索引1、2和3)。注意,这没有经过测试!
if (DataGridView1.Columns[e.ColumnIndex] is DataGridViewButtonColumn && cellEvent.RowIndex != -1)
{
DataRow currRow = DataGridView1.Rows[e.RowIndex];
SendValuesSomewhereElse(Convert.ToString(currRow[1]), Convert.ToString(currRow[2]), Convert.ToString(currRow[3]));
}
假设前三列是数据,第四列是按钮。
提取数据的一种快速而不干净的方法是:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
//If not fourth column then return (the button)
if (e.ColumnIndex != 3)
return;
object col1 = dataGridView1.Rows[e.RowIndex].Cells[0].Value;
object col2 = dataGridView1.Rows[e.RowIndex].Cells[1].Value;
object col3 = dataGridView1.Rows[e.RowIndex].Cells[2].Value;
}
您将获得带有e.RowIndex
的被单击的行和带有e.ColumnIndex
的被单击的列。