如何禁用在DataGridView中选择的功能?

Mah*_*ari 56 .net c# datagridview winforms

我想用我的DataGridView唯一来展示东西,我希望用户不能从中选择任何行,字段或任何东西DataGridView.

我怎样才能做到这一点?

edh*_*ell 118

我会选择这个:

private void myDataGridView_SelectionChanged(Object sender, EventArgs e)
{
    dgvSomeDataGridView.ClearSelection();  
}
Run Code Online (Sandbox Code Playgroud)

我不同意不DataGridView应该不可选择的广泛主张.有些UI是为工具或触摸屏而构建的,允许选择误导用户认为选择实际上会将它们带到某个地方.

ReadOnly = true控件上的设置对是否可以选择单元格或行没有影响.设置有视觉和功能方面的缺点Enabled = false.

另一种选择是将控件选择的颜色设置为与未选择的颜色完全相同的颜色,但如果您恰好操纵单元格的背面颜色,则此方法也会产生一些令人讨厌的结果.


小智 17

您可以为所选单元格设置透明背景颜色,如下所示:

DataGridView.RowsDefaultCellStyle.SelectionBackColor = System.Drawing.Color.Transparent;
Run Code Online (Sandbox Code Playgroud)


Ram*_*rja 10

Enabled 财产到 false

要么

this.dataGridView1.DefaultCellStyle.SelectionBackColor = this.dataGridView1.DefaultCellStyle.BackColor;
this.dataGridView1.DefaultCellStyle.SelectionForeColor = this.dataGridView1.DefaultCellStyle.ForeColor;
Run Code Online (Sandbox Code Playgroud)

  • “Enabled=false”将完全禁用网格,包括滚动,因此它没有用。 (2认同)

Ang*_*wal -3

使用该DataGridView.ReadOnly财产

MSDN 示例中的代码说明了在主要用于显示的DataGridView控件中如何使用此属性。在此示例中,控件的视觉外观以多种方式定制,并且控件被配置为有限的交互性

观察示例代码中的这些设置:

// Set property values appropriate for read-only
// display and limited interactivity
dataGridView1.AllowUserToAddRows = false;
dataGridView1.AllowUserToDeleteRows = false;
dataGridView1.AllowUserToOrderColumns = true;
dataGridView1.ReadOnly = true;
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView1.MultiSelect = false;
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
dataGridView1.AllowUserToResizeColumns = false;
dataGridView1.ColumnHeadersHeightSizeMode = 
DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
dataGridView1.AllowUserToResizeRows = false;
dataGridView1.RowHeadersWidthSizeMode = 
DataGridViewRowHeadersWidthSizeMode.DisableResizing;
Run Code Online (Sandbox Code Playgroud)

  • 如果我可以投反对票,我会的。代表还不够。但是,只读不会阻止用户选择单元格。 (4认同)