如何在DataGridView中禁用sorting?

我怎样才能禁用sorting在DataGridView ? 我需要禁用头DataGridViewsorting。

 foreach (DataGridViewColumn column in dataGridView.Columns) { column.SortMode = DataGridViewColumnSortMode.NotSortable; } 

使用LINQ:

 Datagridview1.Columns.Cast<DataGridViewColumn>().ToList().ForEach(f => f.SortMode = DataGridViewColumnSortMode.NotSortable); 

如果你想静态地使列不可sorting。 你可以这样做

  1. 打开DatagridView控件的EditColumns窗口2.在左侧窗格中select您不能sorting的列
  2. 在右侧属性窗格中,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。