如何在DataGridView中禁用sorting?
我怎样才能禁用sorting在DataGridView
? 我需要禁用头DataGridView
sorting。
foreach (DataGridViewColumn column in dataGridView.Columns) { column.SortMode = DataGridViewColumnSortMode.NotSortable; }
使用LINQ:
Datagridview1.Columns.Cast<DataGridViewColumn>().ToList().ForEach(f => f.SortMode = DataGridViewColumnSortMode.NotSortable);
如果你想静态地使列不可sorting。 你可以这样做
- 打开DatagridView控件的EditColumns窗口2.在左侧窗格中select您不能sorting的列
- 在右侧属性窗格中,select“sorting模式”属性,然后select“不可sorting”。
这很简单:
foreach (DataGridViewColumn dgvc in dataGridView1.Columns) { dgvc.SortMode = DataGridViewColumnSortMode.NotSortable; }
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { for (int i = 0; i < dataGridView1.Columns.Count; i++) { dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; } }
您可以在ColumnAdded事件中禁用它:
private void dataGridView1_ColumnAdded(object sender, DataGridViewColumnEventArgs e) { dataGridView1.Columns[e.Column.Index].SortMode = DataGridViewColumnSortMode.NotSortable; }
如果您可以扩展DataGridView,则可以使用空方法覆盖Sort
方法。 这将完全禁用对DataGridView的sorting。
public override void Sort(DataGridViewColumn dataGridViewColumn, ListSortDirection direction) { //base.Sort(dataGridViewColumn, direction); }
注意:您甚至不能以编程方式对任何列进行sorting。