• atwiki
  • lele @Wiki
  • .NET DataGrid ソートのイベント の編集履歴一覧

「.NET DataGrid ソートのイベント」の編集履歴(バックアップ)一覧に戻る

.NET DataGrid ソートのイベント - (2006/06/21 (水) 16:09:27) の編集履歴(バックアップ)


DataGridでキー一覧を表示し、選択行のデータを表示するアプリを作成。
DataGridのタイトル行をクリックすると勝手に一覧がソートされるのだが、選択行は変わらない=選択データが変わる。

DataGridにはなぜかソートに関するイベントがない。いろいろ調べた結果、これで解決した。
ちなみに、ソートでDataGrid.DataSetは変更されないらしく、そのため当然行番号によるアクセスはできなくなる。それもこのCurrencyManagerを使うことにより解決。

' フォームロード(初期化) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' CurrentManagerのCurrentChangedイベント追加.(選択セル変更やソートのイベント) Dim cm As CurrencyManager = CType(DataGrid1.BindingContext(DataGrid1.DataSource), CurrencyManager) AddHandler cm.CurrentChanged, AddressOf CurrencyManager_CurrentChanged cm.Position = 0 ShowData(0) End Sub ' 選択セル変更・ソート Private Sub CurrencyManager_CurrentChanged(ByVal sender As Object, ByVal e As System.EventArgs) ShowData(DataGrid1.CurrentCell.RowNumber) End Sub ' データ表示 Private Sub ShowData(ByVal index As Integer) Dim cm As CurrencyManager = CType(DataGrid1.BindingContext(DataGrid1.DataSource), CurrencyManager) Dim dv As DataView = CType(cm.List, DataView) MsgBox(dv.Item(index)(0)) End Sub 参考
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=11209&forum=7

記事メニュー
目安箱バナー