C# 如何使第一行列在DataGridView中不可单击?
我用这种方式制作了这个应用程序,当你点击当前行时,你会得到一个新的表单,在那里你可以编辑这个项目,如果我点击的话 列名:ID、名称、国家/地区我再次获得新表单,第一条记录需要编辑,但我不想单击列名并加载编辑表单。我只希望在单击第一行而不是最后一行时发生这种情况。所以我就这么做了:C# 如何使第一行列在DataGridView中不可单击?,c#,winforms,C#,Winforms,我用这种方式制作了这个应用程序,当你点击当前行时,你会得到一个新的表单,在那里你可以编辑这个项目,如果我点击的话 列名:ID、名称、国家/地区我再次获得新表单,第一条记录需要编辑,但我不想单击列名并加载编辑表单。我只希望在单击第一行而不是最后一行时发生这种情况。所以我就这么做了: if (advancedDataGridView.CurrentCell.RowIndex > 0) { editRecord.ShowDialog(); } 但我现在无法编辑
if (advancedDataGridView.CurrentCell.RowIndex > 0)
{
editRecord.ShowDialog();
}
但我现在无法编辑第一行,有什么想法吗?我如何修复它
if (advancedDataGridView.CurrentCell.RowIndex > 0)
索引从0开始。此条件忽略0,仅当索引大于0时才有效(因此从1开始)。如果是case,因为索引从0开始,所以需要使用大于或等于0(=
)
编辑:
要解决忽略标题单元格的问题,请执行以下操作:
private void DataGridView_OnCellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0 && !(sender is DataGridViewHeaderCell))
{
MessageBox.Show("content cell was clicked");
}
}
请注意,您必须使用
CellClick
事件处理程序。在哪个事件中有该代码?在尝试访问CurrentCell或CurrentRow0是有效索引之前,似乎需要检查null,因此,请使用=
,但这样,当我单击列时,我会再次获得编辑表单,我不希望这样。但这样,当我单击列时,我会再次获得编辑表单,我不希望这样。您可以检查列索引是否>0,然后我无法单击第一行,请仔细阅读问题。因此,(RowIndex>=0&&ColumnIndex>0)导致您无法选择第一行,对吗?如果rowindex>=0,我可以选择第一行,但我也可以选择列名称,我不希望这样。我想在这张图片中选择除列名以外的所有内容,你可以看到它们ID、姓名、国家、号码、性别