1

フォームのAcceptButtonとして設定されているボタンのあるフォームがあります。フォームには他にもいくつかのコントロールがあります。他のコントロールでEnterキーを押すと、フォームの承認ボタンが原因でフォームが閉じます。CancelButtonについても同じことが言えます。これをどのように処理しますか。フォームとコントロールのkeypressキーダウンイベントにフックしてみました。動作しません。これを回避する方法はありますか?

トンありがとう、ダッテ

4

5 に答える 5

4

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

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

于 2010-01-22T04:38:12.370 に答える
1

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

    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);
    }
于 2010-01-22T04:51:17.180 に答える
1

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

于 2010-01-22T04:51:27.800 に答える
0

これはフォームの特徴の1つです。

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

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

よろしく。

于 2010-01-22T05:48:33.160 に答える
-2

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

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

        End If
于 2010-01-22T09:09:03.710 に答える