DataGridViewの列の順番をユーザーが変更できるようにする注意:DataGridViewコントロールは、.NET Framework 2.0で新しく追加されました。 DataGridViewではAllowUserToOrderColumnsをTrueにすることにより、ユーザーがドラッグ&ドロップで列の位置を変更できるようになります。 [VB.NET] 'DataGridView1の列の位置をユーザーが変更できるようにする DataGridView1.AllowUserToOrderColumns = True [C#] //DataGridView1の列の位置をユーザーが変更できるようにする DataGridView1.AllowUserToOrderColumns = true; ただし、DataGridViewColumn.Frozenプロパティで列が固定されている場合は、固定された列を固定されていない列に移動できません(逆も同じです)。 補足:上記のようなコードを書く方法以外に、Visual Studioのスマートタグで、「列の順序変更を有効にする」にチェックを入れる方法もあります。 列の位置を取得するユーザーが列の位置を変更した場合でも、列のIndexは変更されません。列の位置は、DataGridViewColumn.DisplayIndexプロパティで取得できます。 また、DisplayIndexプロパティを設定することにより、列の位置を変更することもできます。 [VB.NET] '列"Column1"の現在の位置を取得する Console.WriteLine(DataGridView1.Columns("Column1").DisplayIndex) '列"Column1"を先頭に移動する DataGridView1.Columns("Column1").DisplayIndex = 0 [C#] //列"Column1"の現在の位置を取得する Console.WriteLine(DataGridView1.Columns["Column1"].DisplayIndex); //列"Column1"を先頭に移動する DataGridView1.Columns["Column1"].DisplayIndex = 0; 列の位置が変更されたことを知る列の位置が変更されたことは、ColumnDisplayIndexChangedイベントで知ることができます。 [VB.NET] 'DataGridView1のColumnDisplayIndexChangedイベントハンドラ Private Sub DataGridView1_ColumnDisplayIndexChanged(ByVal sender As Object, _ ByVal e As DataGridViewColumnEventArgs) _ Handles DataGridView1.ColumnDisplayIndexChanged Console.WriteLine("{0} の位置が {1} に変更されました。", _ e.Column.Name, e.Column.DisplayIndex) End Sub [C#] //DataGridView1のColumnDisplayIndexChangedイベントハンドラ private void DataGridView1_ColumnDisplayIndexChanged(object sender, DataGridViewColumnEventArgs e) { Console.WriteLine("{0} の位置が {1} に変更されました。", e.Column.Name, e.Column.DisplayIndex); } 注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。
|
|
Copyright 2002-2008 DOBON!. All rights reserved.
|