it-swarm.com.ru

Как отключить сортировку в DataGridView?

Как отключить сортировку в DataGridView? Мне нужно отключить сортировку заголовка DataGridView.

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

Если вы хотите статически сделать столбцы не сортируемыми. Вы можете сделать это так

  1. Откройте окна EditColumns элемента управления DatagridView2. Выберите столбец, который вы хотите сделать не сортируемым, на левой боковой панели.
  2. На правой панели свойств выберите свойство «Режим сортировки» и выберите «Не сортируется».
16
Banusundar Arumugam

Используйте LINQ:

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

Это очень просто:

foreach (DataGridViewColumn dgvc in dataGridView1.Columns)
{
    dgvc.SortMode = DataGridViewColumnSortMode.NotSortable;
}
5
Dara.Joukar

Вы можете отключить его в событии ColumnAdded:

private void dataGridView1_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
{
    dataGridView1.Columns[e.Column.Index].SortMode = DataGridViewColumnSortMode.NotSortable;
}
0
Deepak

Для расширения функциональности управления, подобного этой, мне нравится использовать методы расширения, чтобы их можно было легко использовать повторно. Вот начальный файл расширений, который содержит расширение для отключения сортировки в представлении данных.

Чтобы использовать его, просто включите его в свой проект и позвоните так

myDatagridView.DisableSorting () 

В моем случае я добавил эту строку кода в обработчик событий DataBindingComplete DataGridView, где я хотел отключить сортировку

Imports System.ComponentModel
Imports System.Reflection
Imports System.Runtime.CompilerServices
Imports System.Windows.Forms

Public Module Extensions

<Extension()>
Public Sub DisableSorting(datagrid As DataGridView)
    For index = 0 To datagrid.Columns.Count - 1
        datagrid.Columns(index).SortMode = DataGridViewColumnSortMode.NotSortable
    Next
End Sub


End Module
0
Scope Creep
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
      for (int i = 0; i < dataGridView1.Columns.Count; i++)
      {
           dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
      }
}
0
Fatih Gurbuz

Если вы можете расширить DataGridView, вы можете переопределить метод Sort с пустым. Это полностью отключает сортировку для DataGridView.

public override void Sort(DataGridViewColumn dataGridViewColumn, ListSortDirection direction)
{
    //base.Sort(dataGridViewColumn, direction);
}

Примечание. Вы даже не можете программно сортировать столбцы.

0
bansi