数据网格视图按钮列的问题

本文关键字:问题 按钮 视图 数据网 网格 数据 | 更新日期: 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的被单击的列。