C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

コンボボックスとProcessDialogKey /み (19/03/08(Fri) 16:54) #90406
Re[1]: コンボボックスとProcessDialogKey /み (19/03/08(Fri) 17:40) #90408 解決済み


親記事 / ▼[ 90408 ]
■90406 / 親階層)  コンボボックスとProcessDialogKey
□投稿者/ み (1回)-(2019/03/08(Fri) 16:54:31)

分類:[.NET 全般] 

画面にコンボボックスを配置し
ProcessDialogKeyをoverrideして
ファンクションキーにある処理を実装した時
ProcessDialogKeyで指定した処理が2度呼ばれてしまいます。

コンボボックスをテキストボックスにした場合は2度発生しません。
コンボボックスで何か処理を記述した方がよいのでしょうか

        protected override bool ProcessDialogKey(Keys keyData)
        {

            switch (keyData & Keys.KeyCode)
            {
                case Keys.F10:
                    testmsg();
                    break;
            }
            return base.ProcessDialogKey(keyData);
        }


        private void testmsg()
        {
            string work = "確認ダイアログ表示";

            DialogResult result = MessageBox.Show(work, "確認", MessageBoxButtons.OKCancel,
                                    MessageBoxIcon.Question,
                                    MessageBoxDefaultButton.Button2);

            if (result == DialogResult.Cancel) return;
        }


[ □ Tree ] 返信 編集キー/

▲[ 90406 ] / 返信無し
■90408 / 1階層)  Re[1]: コンボボックスとProcessDialogKey
□投稿者/ み (2回)-(2019/03/08(Fri) 17:40:17)
自己レスです。
以下のように修正しました。
参考URL http://metroit.hatenablog.jp/entry/2015/06/25/102826
問題がある場合は指摘をお願い致します。

            bool ret = base.ProcessDialogKey(keyData);

            switch (keyData & Keys.KeyCode)
            {
                case Keys.F10:
                    testmsg();
                    ret = true; //キーがコントロールによって処理された場合は true

                    break;
            }
            return ret;


解決済み
[ 親 90406 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -