Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

  • Откройте окна EditColumns элемента управления DatagridView 2. Выберите столбец, который вы хотите сделать не сортируемым в левой панели.
  • В правой панели свойств свойств выберите свойство Сортировка и выберите в нем Не сортировать.

Ответ 4

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

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

Ответ 5

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

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

Ответ 6

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

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

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

Ответ 7

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