我有一个DataGridView
我使用这个LINQ语句禁用了列排序:
((DataGridView)sender).Columns.Cast<DataGridViewColumn>().ToList().ForEach(f => f.SortMode = DataGridViewColumnSortMode.NotSortable);
到目前为止一切都很好。但是,每当我将鼠标悬停在任何列标题上时,标题就不再像是悬停在它们上面了。
有没有办法禁用列排序,同时还能保持能够查看您悬停在哪个列上?
答案 0 :(得分:2)
DataGridViewColumnSortMode
成员的MSDN文档定义:
NotSortable
该列只能以编程方式排序,但不能用于排序,因此列标题不包含排序标志符号的空间。
Programmatic
该列只能以编程方式排序,列标题将包含排序标志符号的空间。
从技术上讲,这意味着两个选项为用户禁用列排序。除了意图之外,两者之间的唯一区别是视觉线索,I.E。排序标志符号和悬停突出显示。
因此,如果您希望排序外观没有任何排序,请设置以下模式,只需不进行任何程序化排序。
DataGridViewColumn.SortMode = DataGridViewColumnSortMode.Programmatic;