9

C#を使用してツールを構築しています。これはWindowsアプリケーションです。フォームに1つのテキストボックスがあり、ユーザーがCtrl+FまたはCtrl+を押したときにそのテキストボックスにフォーカスを割り当てたいと思いますS

どうすればよいですか?

4

5 に答える 5

14

1つの方法は、ProcessCMDKeyイベントをオーバーライドすることです。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData == (Keys.Control | Keys.S))
    {
        MessageBox.Show("Do Something");
        return true;
    }
    return base.ProcessCmdKey(ref msg, keyData);
}

編集:または、keydownイベントを使用することもできます-VisualStudio.NETでショートカットキーをキャプチャする方法を参照してください。

于 2010-03-23T10:35:15.683 に答える
5

イベントをキャプチャしKeyDown、ifステートメントをその中に配置して、どのキーが押されたかを確認します。

private void form_KeyDown(object sender, KeyEventArgs e)
{
    if ((e.Control && e.KeyCode == Keys.F) || (e.Control && e.KeyCode == Keys.S)) {
        txtSearch.Focus();
    }
}
于 2016-09-23T18:47:01.667 に答える
2

まず、Windowsフォームのプロパティが「KeyPreview=true」であることを確認します

2番目のものオープンフォームイベントプロパティそして「KeyDown」をダブルクリックし、イベントの本文内に次のコードを記述します:-

private void form1_KeyDown(object sender, KeyEventArgs e)
{
     if ((e.Control && e.KeyCode == Keys.F) || (e.Control && e.KeyCode ==Keys.S)) 
     {
           TextBox1.Focus();
     }
}
于 2019-01-26T06:17:32.687 に答える
0

フォームでキーの押下をキャッチするイベントを追加し、キーの押下を分析して、ショートカットキーの1つと一致するかどうかを確認してから、フォーカスを割り当てます。

于 2010-03-23T10:36:25.813 に答える
0

1つのオプションは、ラベルが付いたコントロールにアクセスキーを割り当てることです。テキストボックスに関連するラベルに基づいてショートカットを割り当てます。

ラベル付きのコントロールにアクセスキーを割り当てるには

  1. 最初にラベルを描画してから、もう一方のコントロールを描画します。

-また-

コントロールを任意の順序で描画し、ラベルのTabIndexプロパティを他のコントロールより1つ少なく設定します。

  1. ラベルのUseMnemonicプロパティをtrueに設定します。

  2. ラベルのTextプロパティでアンパサンド(&)を使用して、ラベルにアクセスキーを割り当てます。詳細については、「Windowsフォームコントロールのアクセスキーの作成」を参照してください。

ソース: https ://docs.microsoft.com/en-us/dotnet/desktop/winforms/controls/how-to-create-access-keys-with-windows-forms-label-controls?view = netframeworkdesktop-4.8

下の図では、Alt + Yを押すと、フォーカスがテキストボックスに移動します。

例

于 2021-04-13T05:20:02.367 に答える