2008年3月11日火曜日

DataGridViewのTabStop対応(4) Process~系のメソッド

DataGridViewでキー制御をカスタマイズする際に利用するProcess~系統のメソッド。
ちょっとだけ困ったことがあって、Process系のメソッドのうち一部はOverridableになってないんだよね。
まぁそのあたりも含めてまずは使う必要が多いメソッドについて。

  • ProcessDataGridViewKeyメソッド
  • ProcessDialogKeyメソッド
  • ProcessRightKeyメソッド、ProcessLeftKeyメソッド(Overridableでない)

主にオーバーライドを行うのはこのあたり。場合によってはRight、LeftだけではなくUp、DownなどのProcess~メソッドもオーバーライドする必要が出てくるね。Right、LeftはOverridableでないので、Shadowで書き換えてしまいましょう。
なので、DataGridViewとしてキャストした場合は書き換えたロジックが走らないので注意がいりますな。

基本的なところはMSDN2でも見てもらうとして、実際に呼ばれるのはProcessDataGridViewKeyメソッドとProcessDialogKeyメソッドの二つ。ここがキー制御の大本だと思っていいと思う。
若干呼び出されるケースが異なるくらいだけど、どちらもやる内容としては似たようなもんです(w

極端に言えば、Enterキーを押したら右のセルに移れ!という場合、ProcessDialogKeyメソッドとProcessDataGridViewKeyメソッドにて、Enterキーをキャッチした時にProcessRightKeyメソッドを呼ぶとか直接セルを移動させるとかしてあげればいいんだよね。

前回までに書いていたTabFocus関連の話は、ProcessRightKeyメソッドとかProcessLeftKeyメソッドの中で利用してあげるのが、結構スマートかな、なんて思います。
・・・当然もっともっとスマートな方法はあると思うけど。

0 件のコメント:

コメントを投稿