datagridview button column Winforms
本文关键字:Winforms column button datagridview | 更新日期: 2023-09-27 18:20:44
我在DataGridView
上有一个按钮列,我正在尝试处理Button.Click
事件,但单击按钮时没有发生任何事情。有什么帮助吗?
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show(e.ColumnIndex.ToString());
if (e.ColumnIndex == 5)
{
MessageBox.Show((e.RowIndex + 1) + " Row " + (e.ColumnIndex + 1) + " Column button clicked ");
}
}
我试过你的示例,它很有效。您真的将事件绑定到您的DataGridView
吗?
请检查<YourFormName>.Designer.cs
类中的InitializeComponent()
方法。它真的有吗
this.dataGridView1.CellClick +=
new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellClick);
并且您不删除代码中其他位置的处理程序?
DataGridViewButtonColumn MSDN页面上有这样一句话:
若要响应用户按钮单击,请处理DataGridView.CellClick或DataGridView.CellContentClick事件。在事件处理程序中,可以使用DataGridViewCellEventArgs.ColumnIndex属性来确定单击是否发生在按钮列中。您可以使用DataGridViewCellEventArgs.RowIndex属性来确定单击是否发生在按钮单元格中,而不是列标题上。
让我澄清一下,在c#windows窗体中,数据网格视图的每一行上都有按钮。因此,为了获得datagridview的按钮点击事件,我向您展示了一个对我来说很好的c#代码示例!下面是我的数据网格视图按钮点击事件的c#代码,它运行良好:
private void dgTasks_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
var button = (DataGridView)sender;
if (button.Columns[6] is DataGridViewColumn && e.RowIndex >= 0)
{
MessageBox.Show("You have clicked Cancel button of a row of datagridview ", "Task", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
其中dgTasks是我在c#winforms中的数据网格视图的名称按钮。Columns[6]是我的数据网格视图的列号,其中按钮列名为:btnCancel,标题文本:CANCEL和文本:CANCEL。这只是一个样本!希望你觉得它有用。!
听起来您的活动没有正确注册。要进行检查,请在Designer中高亮显示DataGridView
控件并选择Properties
,在Events
下检查CellClick
事件是否有条目,如果没有,则应提供一个下拉列表,列出您的事件-选择它,这样可以解决您的问题。