2017-12-09 11 views
0

私はC#ウィンドウフォームアプリケーションを使用しています。私はすでにこのクエリのインターネット上で多くの例を試したが、何も私のために働く。私は、EnterキーのアクションをWindowフォームのTabキーに置き換えたいだけです。テキストボックスにキーダウンやアップイベントを1つずつ適用したくありません。私はちょうど私のウィンドウのフォームに適用することができます単一のイベントが欲しい。EnterキーをTabキーの既定のキーにする方法Windowフォームのすべてのテキストボックスを変更するC#?

ありがとうございました。

+0

Form_KeyPressイベントでは機能しません。私はちょうど何も起こっていないビン音が聞こえます –

+0

https://stackoverflow.com/a/47680960/17034 –

答えて

0

これでフォームのkeyupイベントでこれらのコードを使用し、KeyPreviewプロパティをTrueに設定しました。

public class MyTextBox : TextBox 
{ 
    protected override void OnKeyDown(KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Enter) 
     { 
      Parent.SelectNextControl(this, true, true, true, true); 
      e.Handled = true; 
      e.SuppressKeyPress = true; // suppress Ding sound 
     } 
     base.OnKeyDown(e); 
    } 
} 

コードをコンパイルします。

if (e.KeyData == System.Windows.Forms.Keys.Enter) 
     { 
      SendKeys.Send("{TAB}"); 
     } 
+0

'KeyPreview'のために、フォームは、例えばボタンに向けられたイベントを傍受することができます。それは望ましくない。また、 'SendKeys.Send'メソッドは、他のアプリケーションにメッセージを送ることができます。どちらも望ましくない。 –

0

は、独自のカスタムTextBoxを作成します。このコンポーネントはツールバーに表示されます。通常のテキストボックスの代わりに使用します。

関連する問題