clickkedcell DataGridView不应该为列标题工作
本文关键字:标题 工作 DataGridView 不应该 clickkedcell | 更新日期: 2023-09-27 18:05:43
我有一个DataGridView,它有4列。我使用事件CellClick,以便当用户单击行时,它将从DataGridView中删除。一切都很好,但是当用户错误地点击列标头(列的名称),然后CellClick事件出现,当然程序崩溃,因为我试图删除一行,用户点击列标头。我能做点什么吗?是否有任何属性可以禁用单击列标题的可能性?
在CellClick
事件检查e.RowIndex
中,如果单击列标题将为-1,您可以忽略它。
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) {
if (e.RowIndex >= 0) {
// they clicked a row..
}
}
您需要检查e.RowIndex属性。如果是-1,这就是头行。查看Andy G的帖子中的代码片段…
您确定要在单击该行时删除该行吗?这对我来说似乎很危险,用户可以非常很容易错误地点击错误的行。最好是选择行,然后通过菜单条的方式有一个删除按钮,或者右键单击行,弹出一个上下文菜单,用户可以选择删除选项。
您需要阅读DataGridViewCellEventArgs
-object的属性 RowIndex
,如果单击中没有使用DataGridViewRow
,则返回 -1
。我更喜欢用一行来检查,像这样:
private void dgv_CellClick(object sender, DataGridViewCellEventArgs e)
{
// If a non-DataGridViewRow was clicked, return
if (e.RowIndex == -1) { return; }
// Your old code here
}