問題 - カスタムコンボボックスを「ON」に設定すると、一時的に「ON」に変更されますが、時々「OFF」に切り替わります。カスタムWindows.Forms.ComboBoxのデバッグ
基本的に、私は方法があります。私は「ON」と、それは、選択されたインデックス「ON」のコードパスを実行するためのコンボボックスを設定した後
void value_SelectedIndexChanged(object sender, EventArgs e)
{
if((ComboBox)sender.Focused == true)
{
if(value.SelectedIndex == false) // OFF
// set a bunch of variables for OFF
else // ON
// set a bunch of variables for ON
}
}
をしかし、選択されたインデックスは「OFF」に切り替わります。理由はわかりません。その結果、OFF変数のコードパスが実行されます。
これを修正しようとすると、この "value_SelectedIndexChanged"メソッドが呼び出されるたびに、送信者とEventArgsをキャプチャするためのログステートメントが置かれます。ただし、送信者はクラスと等しく、EventArgsはSystem.EventArgsです。
この問題をデバッグする方法を教えてください。
Simon、私はオフ変数を設定するコードを踏んだ。しかし、値のselectedIndexを変更したコードはありませんでした。私はあまりGUIに精通していない。通常、selectedIndexの変更をトリガーするのは何ですか? –
また、ComboBoxにフォーカスが当てられているかどうかをチェックする最初のif文も完全にはわかりません。私はあなたのコードが明らかであることに同意します。 –
選択を任意の方法で変更すると、SelectedIndexプロパティが変更されます。そのため、ComboBoxをバックアップしているデータを変更したり、SelectedItemプロパティなどを変更したりすることによって発生する可能性があります。 メソッドの最後にブレークポイントを追加してシングルステップを実行すると、2番目の変更の原因を示すヒントが得られます。 – Simon