programing

DataGridView에서 정렬을 비활성화하는 방법은 무엇입니까?

projobs 2021. 1. 19. 22:07
반응형

DataGridView에서 정렬을 비활성화하는 방법은 무엇입니까?


정렬을 비활성화하려면 어떻게 DataGridView해야합니까? 헤더 DataGridView정렬 을 비활성화해야합니다 .


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

LINQ 사용 :

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

정적으로 열을 정렬 할 수 없도록하려면. 이렇게 할 수 있습니다

  1. DataGridView 컨트롤의 EditColumns 창을 엽니 다.
  2. 왼쪽 창에서 정렬 할 수 없도록 만들 열을 선택합니다.
  3. 오른쪽 속성 창에서 정렬 모드 속성을 선택하고 "정렬 할 수 없음"을 선택합니다.

매우 간단합니다.

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에 대한 정렬이 완전히 비활성화됩니다.

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

참고 : 프로그래밍 방식으로 열을 정렬 할 수도 없습니다.


이와 같은 제어 기능을 확장하기 위해 확장 메서드를 사용하여 쉽게 재사용 할 수 있습니다. 다음은 datagridview에서 정렬을 비활성화하는 확장을 포함하는 시작 확장 파일입니다.

그것을 사용하려면 프로젝트에 포함하고 다음과 같이 호출하십시오.

myDatagridView.DisableSorting ()

필자의 경우 정렬을 비활성화하려는 DataGridView의 DataBindingComplete 이벤트 핸들러에이 코드 줄을 추가했습니다.

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

참조 URL : https://stackoverflow.com/questions/4502442/how-to-disable-sort-in-datagridview

반응형