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

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

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

Re[1]: コンボボックスとProcessDialogKey


(過去ログ 156 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■90406 / inTopicNo.1)  コンボボックスと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;
        }


引用返信 編集キー/
■90408 / inTopicNo.2)  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;


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -