2016-10-08 3 views
0

ボタンをクリックして有効にすることができますが、キーボードのキーを離すとボタンが有効になりません。コードは、C#で、私はtrueにフォームのプロパティを設定しKeyPreviewキーボードのキーを押してC#ボタンをアクティブにできません

private void btnApiBetHigh_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) 
    { 
    if (e.KeyCode == Keys.F) 
     { 
      CurrentSite.amount = ((decimal)nudApiBet.Value); 
      CurrentSite.chance = (decimal)(nudApiChance.Value); 
      CurrentSite.PlaceBet(true, (decimal)nudApiBet.Value, (decimal)(nudApiChance.Value)); 
     } 
    } 
+0

キーを押したときにボタンにフォーカスがありますか? –

+0

ボタンにフォーカスがあるときに「F」を押してボタンをアクティブにしたいのはなぜですか?あなたの要件は何ですか? –

+0

@Andrew Morton Focus? – user208204

答えて

1

VS 2015を使用しています。その後、個々のボタンではなく、フォームのKeyUpイベントでコードを使用します。

private void Form1_KeyUp(object sender, KeyEventArgs e) 
{ 
    if(e.KeyCode == Keys.F) 
    { 
      e.Handled = true; 
      MessageBox.Show("F"); 
    } 
    else if(e.KeyCode == Keys.G) 
    { 
      e.Handled = true; 
      MessageBox.Show("G"); 
    } 
} 

別の方法として任意のコードを書くことなく、mnemonicsを使用することです。ボタンに「Bet High(& G)」というテキストを使用すると、フォーム上の任意の場所にあるGキーを押すとボタンが自動的に押されます(テキスト入力を受け入れるコントロールにフォーカスがある場合を除く)。

+0

ニーモニックを使用する場合は、Alt + Keyを押してボタンをアクティブにします。ボタンがフォーカスされているときに、Altキーを押さないでニーモニックキーを押すと、ボタンのクリックイベントが発生します。 –

+0

@RezaAghaei現在フォーカスのあるコントロールがテキストボックスでない限り、ボタンにフォーカスがない場合はAltキーを押しても機能しません。コンボボックスまたはテキスト入力そのものを受け入れる他のコントロール。それをテストしてください:) – NineBerry

+0

'TextBox'と' ComboBox'と、テキストを受け入れる他のコントロールではありません。十分な説明です;) –

関連する問題