禁用DataGridView RowHeader和ColumnHeader的选择,然后单击

时间:2019-01-17 10:40:57

标签: c# winforms datagridview

是否有任何方法可以禁止单击或选择RowHeader和ColumnHeader或mouseClick或mouseHover。我在寻找:

dgv.RowHeader.Enable = false;//disable rowheader

dgv.RowHeaderClick += dgv_RowHeaderClick;
private void dgv_RowHeaderClick(object sender, EventArgs e)
    {
        DataGridView dgv = (sender as DataGridView);

        dgv.RowHeaderClick -= dgv_RowHeaderClick;
    }

这是DataGridView的令人讨厌的属性,当用户单击标题时,它将突出显示并变为蓝色。当单击标题的单元格时,有时也会引发异常。

1 个答案:

答案 0 :(得分:1)

如果您不介意禁用DataGridView列标题的自动排序模式,则可以禁用Column.SortMode,将其设置为DataGridViewColumnSortMode.NotSortable
这将防止高亮显示行标题,并且不会显示任何排序标志符号。

单击鼠标不会产生任何明显的效果。通常会引发CellClick事件(与e.RowIndex = -1一起发生。)

foreach (DataGridViewColumn col in dataGridView1.Columns) {
    col.SortMode = DataGridViewColumnSortMode.NotSortable;
}

如果DataGridView绑定到数据源并且将其设置为AutoGenerateColumns,则在更改了数据源的情况下重复此过程。 如果“列”是预定义的,则还可以在DataGridView设计器界面中设置此属性。

对于RowHeader,如果需要,可以将DataGridView.SelectionMode更改为DataGridViewSelectionMode.CellSelect