我在 WinForms 中使用 DataGridView 并通过这段代码为它分配列和值
dataGrid.DataSource = sourceObject;
只有通过这条线所有的列和值进入网格。如何处理特定行或字段的 onClick 事件。我想编辑网格中的特定项目,但我找不到从事件方法发送项目 id 的任何方法。
有我不明白的类 DataGridViewEventHandler 吗?
我也尝试将列手动添加为按钮,但我没有找到将其分配为 onClick 操作方法的方法。
我在 WinForms 中使用 DataGridView 并通过这段代码为它分配列和值
dataGrid.DataSource = sourceObject;
只有通过这条线所有的列和值进入网格。如何处理特定行或字段的 onClick 事件。我想编辑网格中的特定项目,但我找不到从事件方法发送项目 id 的任何方法。
有我不明白的类 DataGridViewEventHandler 吗?
我也尝试将列手动添加为按钮,但我没有找到将其分配为 onClick 操作方法的方法。
您无法在 DataGridView 中找到单元格的“OnClick”事件,因为它不存在。查看为单元操作和事件提供的DataGridView 事件的 MSDN 页面
以下是来自 MSDN 的一些示例,关于您可能使用的事件
示例 CellMouseClick 事件和处理程序
private void DataGridView1_CellMouseClick(Object sender, DataGridViewCellMouseEventArgs e) {
System.Text.StringBuilder cellInformation = new System.Text.StringBuilder();
cellInformation .AppendFormat("{0} = {1}", "ColumnIndex", e.ColumnIndex );
cellInformation .AppendLine();
cellInformation .AppendFormat("{0} = {1}", "RowIndex", e.RowIndex );
cellInformation .AppendLine();
MessageBox.Show(cellInformation.ToString(), "CellMouseClick Event" );
}
示例 CellClick 事件和处理程序
private void dataGridView1_CellClick(object sender,
DataGridViewCellEventArgs e)
{
if (turn.Text.Equals(gameOverString)) { return; }
DataGridViewImageCell cell = (DataGridViewImageCell)
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
if (cell.Value == Play)
{
// PlaySomething()
}
else if (cell.Value == Sing)
{
// SingSomeThing();
}
else
{
MessagBox.Show("Please Choose Another Value");
}
}
希望这可以帮助
Here
,您可以看到 DataGridView 的事件列表。如果您想查看是否单击了某个单元格,则需要使用该CellMouseclick
事件。在您的代码中,您可以像这样处理事件:
private void DataGridView1_CellMouseClick(Object sender, DataGridViewCellMouseEventArgs e)
{
//Do something
}
要获取有关单元格的特定详细信息,您可以使用上面提到的“e”属性。它的类型DataGridViewCellMouseEventArgs
。这将为您提供有关该特定单元格的信息。您可以以相同的方式处理在第一个链接中找到的大多数其他事件。(当然,并不是所有的事件都会DataGridViewCellMouseEventArgs
作为论据)。