|
分類:[.NET 全般]
C#2005で DataGridView を使用し、TextBox をベースとしたカスタム列を作成しています。
そこで以下の2つの問題が解決できず困っています。
1.最終行で入力を開始した際に、新規の行が追加されますが、ENTERキーにより入力を確定すると さらに1行追加されてしまい、下から2行目にカーソルがセットされてしまう。
2・最終行で入力状態が始まっているのにもかかわらず、新規の行が追加されない場合がある。 1 の動作を実行後、最終行にカーソルを移動し(1の動作で確定した段階では下から2行目にカーソルがある) 入力を開始した場合は、かならずこの現象が発生します。
この様な現象は何が原因なのでしょうか? DataGridView が新規の行を追加する判断を行う場所はどこでしょうか? (どこを調べていいのかが、さっぱりわかりません・・・)
ちなみに、どこかの掲示板(?)に MaskEdit をカスタム列として作成しているサンプルがあったので、 それを参考にしています。 (というか、それを殆どそのまま使用しているのですが・・MaskEditの方は正しく動いています。)
違いといえば、私が作った TextBox をベースとしたカスタム列は、入力コントロールのKeyDown イベントでENTER キー、 を拾えるのに対し、MaskEdit の方はKeyDown でEnterを拾えないようです。 (なにか事前に処理をしないといけないのかな?)
よろしくお願いします。
|