C#:Form.AcceptButtonの問題

acceptbutton c# forms keypress
C#:Form.AcceptButtonの問題

フォームのAcceptButtonとして設定されているボタンを持つフォームがあります。 フォームには他のいくつかのコントロールがあります。 これで、他のコントロールでEnterキーを押すと、フォームの[承認]ボタンのためにフォームが閉じられます。 CancelButtonについても同様です。 どうやってこれを処理するのですか。 フォームとコントロールのkeypress keydownイベントにフックしてみました。 動作しません。 これの回避策はありますか?

ありがとう、ダッテ

  1  0


ベストアンサー

それが `AcceptButton`プロパティの仕組みです。 「」を押すたびに自動的にクリックされるボタンを指定します。

この動作が望ましくない場合は、「AcceptButton」として設定しないでください。 それをする他の理由はありません。

4


フォームがどのように機能するかについては正確にはわかりませんが、次のようなことを行って、物事をもう少し制御することができます。

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (keyData == Keys.Enter)
        {
            // do something
        }
        if (keyData == Keys.Escape)
        {
            // do something else
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }

1


AcceptButtonをフォームから削除し、KeyDownイベントを処理するフォームでKeyPreviewプロパティを設定できます。 そこでEnterキーを確認し、それに応じてアクションを実行できます。

1


これは、フォームの機能の1つです。

ユーザーがEnterをクリックしたときに目的のコードを実行したい場合、ボタンにフォーカスがない場合

フォームにAcceptButtonプロパティを設定して、ユーザーがボタンにフォーカスがない場合でもEnterキーを押してボタンをクリックできるようにします。

よろしく。

0


VB> netでこれを試してみてください

  If CType(Me.ActiveControl, Button).Name = Button1.Name Then

        End If

-2


タイトルとURLをコピーしました