フォーカスがテキストボックスにある場合にのみボタンを表示

ヨハン

特定のテキストボックスにフォーカスがある場合にのみ、Windowsフォームにボタンを表示することはできますか?

このアプローチでそれを試しました:

    private void button3_Click(object sender, EventArgs e)
    {
        MessageBox.Show("OK");
    }

    private void textBox2_Enter(object sender, EventArgs e)
    {
        button3.Visible = true;
    }

    private void textBox2_Leave(object sender, EventArgs e)
    {
        button3.Visible = false;
    }

ボタンのクリックが機能しないため、運がありません。テキストボックスがフォーカスを失っ直後ボタンが非表示なり、button3_Click(/*...*/) { /*...*/ }イベントが発生しなくなります。

今、私はそれをそのようにやっています:

    private void button3_Click(object sender, EventArgs e)
    {
        MessageBox.Show("OK");
    }

    private void textBox2_Enter(object sender, EventArgs e)
    {
        button3.Visible = true;
    }

    private void textBox2_Leave(object sender, EventArgs e)
    {
        //button3.Visible = false;
        DoAfter(() => button3.Visible = false);
    }

    private async void DoAfter(Action action, int seconds = 1)
    {
        await Task.Delay(seconds*1000);
        action();
    }

フォームは1秒間待機してから、非表示になりbutton3ます。

より良いアプローチはありますか?

ペテリッド

フォーカスが特定のテキストボックスにある場合、またはフォーカスがボタンにある場合にのみボタンを表示したいと思います

これを行うには、チェックすることができるFocusedのプロパティbutton3LeaveのイベントをtextBox2、ボタンにフォーカスがない場合にのみボタンを非表示にします。ボタンがフォーカスを取得することに注意してくださいLeaveのイベントtextBox2発生します。

次にbutton3、フォーカスを失い、フォーカスが以外の場所に移動するシナリオで、ボタンを非表示にする必要がありますtextBox2ここでは、のLeaveイベントを処理し、フォーカスがない場合にbutton3のみ非表示にすることで、まったく同じ手法を使用できますbutton3textBox2

次のコードは要件に適合している必要があります。

private void textBox2_Leave(object sender, EventArgs e)
{
    if (!button3.Focused)
    {
        button3.Visible = false;
    }
}

private void button3_Leave(object sender, EventArgs e)
{
    if (!textBox2.Focused)
    {
        button3.Visible = false;
    }
}

private void textBox2_Enter(object sender, EventArgs e)
{
    button3.Visible = true;
}

private void button3_Click(object sender, EventArgs e)
{
    MessageBox.Show("Button clicked");
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

特定のページにあるときにボタンを非表示にする方法と、テキストボックスに値がある場合

分類Dev

テキストボックスにカーソルを移動せずにフォーカスがある場合は、上/下キーを使用してリストボックスをスクロールします

分類Dev

キャプションがテキストボックスのカンマ区切り値と一致する場合は、ユーザーフォームフレームのチェックボックスをアクティブにします

分類Dev

テキストボックスにデータがある場合はc#有効化ボタン

分類Dev

HTMLデータがフォーカスなしでテキストボックスに存在し、2番目の行のドロップダウンでデータのみが提供されない場合は、新しい行を作成します

分類Dev

テキストボックスの終わりにカーソルがあるオートフォーカス

分類Dev

カーソルフォーカスがテキストボックス内にあるときに<Enter>を押すと、フォーム上の特定のボタンがアクティブになります。[パワーシェル]

分類Dev

Windowsフォーム:テキストボックスに変数の値を表示する必要があります

分類Dev

テキストフィールドに特定の値がある場合にチェックボックスをオンにする方法

分類Dev

子コントロールにフォーカスがある場合に、SelectedIndexをWPFリストボックスにラッチする方法

分類Dev

1つのテキスト行が長い場合、フレックスインボックスのフラッターを各行の中央に配置する方法

分類Dev

Java Swingのテキストボックスとボタンがフォームに表示されませんか?

分類Dev

テキストボックスにデータがある場合にコードを実行する

分類Dev

テキストボックスのフォーカスが失われたため、ボタンを2回クリックする必要があります

分類Dev

テキストボックスのフォーカスが失われたため、ボタンを2回クリックする必要があります

分類Dev

Knockoutjs:テキストボックスに何かが書かれている場合にのみコンテンツを表示し、データが削除されている場合は非表示にします

分類Dev

プレースホルダーのあるテキストボックスにフォーカスがある場合、IE11ではドロップダウン幅が増加します

分類Dev

C#-あるテキストボックスから別のテキストボックスにフォーカスを移動する方法は?

分類Dev

検証が真の場合にのみ、クリアボタンがテキストボックスをクリアするのはなぜですか?

分類Dev

3つのテキストボックス、1つのボタン、ボタンをクリックすると、カーソルがあるテキストボックスにテキストが入力されます

分類Dev

InteractionDialogのテキストフィールドテキストは、TextFieldにフォーカスがある場合にのみ表示されます

分類Dev

テキストボックスが特定のページにある場合は、テキストボックスのメソッドを呼び出します

分類Dev

Angular 2 ag-gridの[フィルターのクリア]ボタンは、組み込みのフィルターが使用されている場合、列を更新せずにテキストボックスをクリアします

分類Dev

ビューにフローティングアクションボタンが含まれている場合にのみスナックバーが表示されている場合、Androidエスプレッソテストがフリーズします

分類Dev

テキストフィールドに「いくつかの」テキストがある場合にボタンを無効にし、そのテキストがテキストフィールドに表示されなくなったときにボタンを再度有効にする方法

分類Dev

データが含まれていない場合はテキストボックスを非表示にする

分類Dev

テキストフィールドにテキストが含まれている場合にのみボタンを有効にする

分類Dev

KeyCode =。(DOT)の場合、次のテキストボックスにフォーカスします

分類Dev

テキストボックスにフォーカスがあるときにエラーボックスをクリアしようとしています

Related 関連記事

  1. 1

    特定のページにあるときにボタンを非表示にする方法と、テキストボックスに値がある場合

  2. 2

    テキストボックスにカーソルを移動せずにフォーカスがある場合は、上/下キーを使用してリストボックスをスクロールします

  3. 3

    キャプションがテキストボックスのカンマ区切り値と一致する場合は、ユーザーフォームフレームのチェックボックスをアクティブにします

  4. 4

    テキストボックスにデータがある場合はc#有効化ボタン

  5. 5

    HTMLデータがフォーカスなしでテキストボックスに存在し、2番目の行のドロップダウンでデータのみが提供されない場合は、新しい行を作成します

  6. 6

    テキストボックスの終わりにカーソルがあるオートフォーカス

  7. 7

    カーソルフォーカスがテキストボックス内にあるときに<Enter>を押すと、フォーム上の特定のボタンがアクティブになります。[パワーシェル]

  8. 8

    Windowsフォーム:テキストボックスに変数の値を表示する必要があります

  9. 9

    テキストフィールドに特定の値がある場合にチェックボックスをオンにする方法

  10. 10

    子コントロールにフォーカスがある場合に、SelectedIndexをWPFリストボックスにラッチする方法

  11. 11

    1つのテキスト行が長い場合、フレックスインボックスのフラッターを各行の中央に配置する方法

  12. 12

    Java Swingのテキストボックスとボタンがフォームに表示されませんか?

  13. 13

    テキストボックスにデータがある場合にコードを実行する

  14. 14

    テキストボックスのフォーカスが失われたため、ボタンを2回クリックする必要があります

  15. 15

    テキストボックスのフォーカスが失われたため、ボタンを2回クリックする必要があります

  16. 16

    Knockoutjs:テキストボックスに何かが書かれている場合にのみコンテンツを表示し、データが削除されている場合は非表示にします

  17. 17

    プレースホルダーのあるテキストボックスにフォーカスがある場合、IE11ではドロップダウン幅が増加します

  18. 18

    C#-あるテキストボックスから別のテキストボックスにフォーカスを移動する方法は?

  19. 19

    検証が真の場合にのみ、クリアボタンがテキストボックスをクリアするのはなぜですか?

  20. 20

    3つのテキストボックス、1つのボタン、ボタンをクリックすると、カーソルがあるテキストボックスにテキストが入力されます

  21. 21

    InteractionDialogのテキストフィールドテキストは、TextFieldにフォーカスがある場合にのみ表示されます

  22. 22

    テキストボックスが特定のページにある場合は、テキストボックスのメソッドを呼び出します

  23. 23

    Angular 2 ag-gridの[フィルターのクリア]ボタンは、組み込みのフィルターが使用されている場合、列を更新せずにテキストボックスをクリアします

  24. 24

    ビューにフローティングアクションボタンが含まれている場合にのみスナックバーが表示されている場合、Androidエスプレッソテストがフリーズします

  25. 25

    テキストフィールドに「いくつかの」テキストがある場合にボタンを無効にし、そのテキストがテキストフィールドに表示されなくなったときにボタンを再度有効にする方法

  26. 26

    データが含まれていない場合はテキストボックスを非表示にする

  27. 27

    テキストフィールドにテキストが含まれている場合にのみボタンを有効にする

  28. 28

    KeyCode =。(DOT)の場合、次のテキストボックスにフォーカスします

  29. 29

    テキストボックスにフォーカスがあるときにエラーボックスをクリアしようとしています

ホットタグ

アーカイブ