DataGridView は奥が深い…
.NET で、DataGridViewを使うことが多いんだけど、 下記の例をやる方法がやっとでわかったのでメモする。 1.DBには「1,2,3,4,5…」と数字になっているが、画面は「あ、い、う、え、お…」と表示させたい。 2.ユーザーには「あ、い、う、え、お…」と入力させ、DBには「1,2,3,4,5…」と更新させたい このような場合、DataGridViewの「CellFormatting」イベントと「CellParsing」イベントを使う 1.DataTableには、DBの値(数字)がそのまま入力されている。 2.DataGridView.DataSource = DataTable として、いつも通りに紐付ける。 3.「DataGridViewの.CellFormatting」を実装する。 コレで、画面上のデータグリッドには変換後の値が表示される。 実装例: If e.Value.ToString() = "1" Then e.Value = "あ" End If 4.「DataGridViewの.CellParsing」を実装する。 コレで、ユーザーが入力した値を、DB用に変換する。 値の入れ替えが終ったら、必ず「e.ParsingApplied = True」を設定すること。 設定しないと反映されません。 実装例: If e.Value.ToString() = "あ" Then e.Value = "1" End If e.ParsingApplied = True 参考URL: http://dobon.net/vb/dotnet/datagridview/cellparsing.html 覚えておこうっ!!! ちなみに、下記順番でイベントが発生したっぽい。 (表示されているイベントしか試してないので、他のものがある可能盛大) 下記イベント順は参考です。信用しないでね。 Tabキー移動の場合: dgvList_CellLeave dgvList_CellParsing dgvList_CellValueChanged マウスで、セルをクリック: dgvList_Cel...