2008年2月1日金曜日

DataGridViewTextBoxEditingControl系統でオートコンプリート

よくあるネタとして、なんだけどひとつだけ注意点があったので書いておこうかと。

オートコンプリート系のプロパティを開放するようにCell、Columnを継承して拡張するというのは、簡単にできると思う。
ネット上でもIMEModeが設定できるように~とか、その類とやることは同じ。なのでAutoCompleteMode、AutoCompleteSource、AutoCompleteCustomSourceプロパティをそれぞれ開放してあげるだけで、下ごしらえとしてはOKだね。

注意しないといけないのは、そのプロパティをセットするタイミングで。

Enterイベント系(今回はOnEnterメソッド内)でこれらのプロパティをいじくると。
Win32Exceptionが発生します。

MSDNとか調べたんだけど、このあたりについてはどうも記述がのっていなかったんだよねぇ・・・。
まぁ理由はわからずともそうなってしまうので(w)、メソッドの本来の目的通りCellクラスのInitializeEditingControlメソッドで設定してあげるのが一番いいんじゃないかな?

0 件のコメント:

コメントを投稿