DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

DOBON.NET

DataGridのAllowSortingプロパティをFalseにしても並べ替えができてしまう問題の解決法

DataGridコントロール(System.Windows.Forms)のAllowSortingプロパティをFalseにしても、列カラムをクリックすると並び替えされてしまうという時は、DataGridコントロールにテーブルスタイルが設定されていないか確かめてください。DataGridコントロールにテーブルスタイルが設定されている時、並び替えの許可、不許可はDataGridコントロールのAllowSortingプロパティで設定するのではなく、使用しているDataGridTableStyleのAllowSortingプロパティで設定する必要があります。

よってDataGridコントロールにテーブルスタイルが設定されているときは、設定されているDataGridTableStyleのAllowSortingプロパティをFlaseにします。ほとんどの場合、これで解決できるでしょう。

次の例では、DataGridコントロールDataGrid1にテーブルスタイル"DataTable1"が設定されている時に、列ヘッダのクリックで並び替えをできないようにしています。

[VB.NET]
'DataGrid1にはテーブルスタイル"DataTable1"が
'設定されているものとする

'テーブルスタイルの取得
Dim ts As DataGridTableStyle
ts = DataGrid1.TableStyles("DataTable1")

'並び替えできないようにする
ts.AllowSorting = False
[C#]
//DataGrid1にはテーブルスタイル"DataTable1"が
//設定されているものとする

//テーブルスタイルの取得
DataGridTableStyle ts;
ts = DataGrid1.TableStyles["DataTable1"];

//並び替えできないようにする
ts.AllowSorting = false;