日付入力コントロールが何とか形になってきたので、日付系セルをやっているわけだけど、こいつが深い。いや、正しくは「セルのValueプロパティに関わる動作が深い」なんだろうなぁ。
元々DataGridViewでは編集時にセルのValueプロパティを変更しても、編集コントロール側には反映する機能はなかったんだよね。それに対応するためにCellValueChangedイベントで、編集中なら編集コントロールのTextを書き換える、ってなことをやっているんだけど。
「どう書き換えてあげればいいかなんてDataGridViewやセルからは判らない」
だよなぁ。編集じゃない部分はCellのGetFormattedValueメソッドあたりを利用すればいいんだけど、編集コントロールに至ってはどうしようもない。Valueに入っているオブジェクトをどう編集させるかってのは、完全に編集コントロール(IDataGridViewEditingControl)側の世界なんだよね。
自前で用意しているセルだけだってんなら、それようのプロパティやらイベントやら用意すれば済むんだけど、デフォルトのセルも使うからそういう手段は使えないし・・・。
Reflectorでフレームワーク内部を除いていてもValueから実際に表示させているところが雰囲気つかめないんだよぅ。難しいわ。
0 件のコメント:
コメントを投稿