2015/08/24(Mon) 18:24:56 編集(投稿者)
2015/08/24(Mon) 18:24:51 編集(投稿者)
-----
[開発環境]
Visual Studio 2012
.NET Framework 4.5
-----
お世話になっております。
いつも勉強させて頂いております。
今回質問させていただきたいのは、PropertyGridについてです。
PropertyGrid上のテキストボックスにて値を変更せずにEnterキーを押下した場合でも
OnPropertyValueChangedで行っている処理(overrideして実装した自分の処理)を実行したいと思っています。
自身で以下2点を調査してみました。
1.UITypeEditor or TypeConverter に使えそうなものはないか
2.テキストボックスにキーダウンイベントを登録してしまえばどうだろう?
"PropertyGrid class"
foreach( Control son in Controls ) {
if( son.GetType().Name == "PropertyGridView" ) {
foreach( var grandson in son.Controls ) {
if( grandson.GetType().Name == "GridViewEdit" ) {
TextBox text = grandson as TextBox;
if( text != null ) {
text.KeyDown -= text_KeyDown;
text.KeyDown += text_KeyDown;
}
}
}
}
}
しかし、1.には使えそうなものがなく(Enterキー押下で処理が来ない)、
2.は、OnKeyDownイベントがinternalクラスのPropertyGridViewでe.Handled=trueされており、
やりたいことの実現は不可能でした。
どうにかして実現したいのですが、案が思いつきません。
皆様、お知恵を拝借させてください。