Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何阻止删除只读DataGridView上的行?_C#_.net_Winforms - Fatal编程技术网

C# 如何阻止删除只读DataGridView上的行?

C# 如何阻止删除只读DataGridView上的行?,c#,.net,winforms,C#,.net,Winforms,甚至为什么我可以删除只读DataGridView上的行 我可以将Enabled设置为false,但是我甚至不能选择,我也不需要这个灰色遮罩。将AllowUserToDeleteRows属性设置为false属性仅确定是否可以编辑单元格。它对用户删除行的能力没有影响。如果不想禁用该控件,可以通过将RowHeadersVisible属性设置为false来有效防止行删除 编辑:请参见@Dmitry的回答:AllowUserToDeleteRows执行此操作的最佳位置是datagridview的ReadO

甚至为什么我可以删除只读DataGridView上的行


我可以将Enabled设置为false,但是我甚至不能选择,我也不需要这个灰色遮罩。

AllowUserToDeleteRows
属性设置为
false

属性仅确定是否可以编辑单元格。它对用户删除行的能力没有影响。如果不想禁用该控件,可以通过将
RowHeadersVisible
属性设置为false来有效防止行删除


编辑:请参见@Dmitry的回答:AllowUserToDeleteRows

执行此操作的最佳位置是datagridview的ReadOnlyChanged事件。别忘了也要禁用添加新行

Private Sub MyDataGridView_ReadOnlyChanged(sender As System.Object, e As System.EventArgs) Handles MyDataGridView.ReadOnlyChanged
    Me.MyDataGridView.AllowUserToDeleteRows = Not Me.MyDataGridView.ReadOnly
    Me.MyDataGridView.AllowUserToAddRows = Not Me.MyDataGridView.ReadOnly
End Sub
您可以处理事件

private void dataGrid_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
{
    if (e.Row.ReadOnly) e.Cancel = true;
}

你的问题似乎不完整,你想实现什么?