2017-12-11 25 views
1

まず、C#を初めて使用していると言います。 WinFormsを使用しています:このコードを使用してComboBoxの値を変更しようとしました。ショートカット。 SelectedIndexの代わりにSelectedValueを使ってみました。その後、値を変更する前または後にComboBoxにフォーカスを当てようとしました。最後に私はstwitchステートメントにこれを変換しようとしたが、私はそれを実行するたびに何も起こりません。私は、Visual Studio 2017を使用してい
- 私はそれをデバッグしようとしたとき、デバッガが教えてくれたこと、それは...それはelseステートメントの内側に行くifステートメント内のコードを実行し、そこにコードを再度実行した後ショートカットを使用してComboBoxの選択値を変更する方法C#

private void Form_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Control && e.KeyCode == Keys.E) 
    { 
     //CBoxLimit.Focus(); 

     if (CBoxLimit.SelectedIndex == 0) 
     { 
      CBoxLimit.SelectedIndex = 1; 
     } 

     else 
     { 
      CBoxLimit.SelectedIndex = 0; 
     } 

     //CBoxLimit.Focus(); 
    } 
} 
あなたの助けを事前に

おかげで...

+0

をブレークポイント(複数可)の助けを借りて、コードを実行してみてくださいし、生成されたすべての例外があるかどうかを確認。その場合は、どのような例外が生成されているのかを通知します。 –

+0

私は知っています。間違いなく私は答えを答えとして書いた。私はコメントを投稿していると思った。私もその投稿を削除しました。 –

+0

SelectedIndexを変更する行にブレークポイントを設定しようとしました... ifステートメント内のコードを実行した後、elseステートメント内でそのコードを再度実行します... –

答えて

0

あなたがCBoxLimitComboBoxとないのインスタンスにSelectedIndexを変更する必要があることと思われます。また、あなたは(hereを参照)TrueにフォームのKeyPreviewプロパティを設定する必要があります。

 private void Form1_KeyDown(object sender, KeyEventArgs e) 
     { 
      if (e.KeyCode == Keys.E) 
      { 
       comboBox1.SelectedIndex = 1; 
      } 
     } 
+0

残念ながら、それはうまくいきませんでした... –

+0

私の編集を参照してください - 私はサンプルプロジェクトでそれを試しました –

+0

私は申し訳ありませんが、私は試したと私は同じ結果を持っていた...私はコンボボックスを開いて私はちょうどうまくいきたいインデックスの上にマウスを置くだけです...しかし、私がそれに乗るときに... Idkなぜ... –

関連する問題