3

ティルトで言うように:

  • リストボックスがあります
  • で値を選択すると
  • 最初のSelectedValueChangedイベントには、クリックした値が含まれています
  • そして時々、2番目のSelectedValueChangedイベントがあり、リストの最初の値が含まれています

これらのコードを追加するのを見つけました:

これは私のデザイナーが含むものです:

    this.listBox1.SelectedValueChanged += 
new System.EventHandler(this.listBox1_SelectedValueChanged);

これは私のクラスに含まれるものです:

public class myControl : UserControl
{

  private void listBox1_SelectedValueChanged(object sender, EventArgs e)
  {
     StackTrace st = new StackTrace(true);
  }                                    /// I put breakpoint that line to look at st
}

2番目のイベントが発生する場所がわかりません。スタックにはたくさんのシステム コードがあり、私自身のコードとはあまり関係がありません。しかし、必要に応じてここを通過できます。

私が実際に習得していない唯一のものは、UserControlコンテキストです。多分その周りに何かする。

それで、1回クリックしたときに2回電話がかかってきた理由がわかりましたか?

King Kingの質問の後に編集します。

シナリオは次のとおりです。

  • listBox1.DataSource通話への影響SelectedValueChanged

    1. 差出人listBox1_SelectedValueChanged : {SelectedItem = "1st value"} object {System.Windows.Forms.ListBox}
  • 呼び出しで3 番目の値を2 回クリックlistBox1SelectedValueChanged

    1. 差出人listBox1_SelectedValueChanged : {SelectedItem = "3rd value"} object {System.Windows.Forms.ListBox}
    2. 差出人listBox1_SelectedValueChanged : {SelectedItem = "1st value"} object {System.Windows.Forms.ListBox}
  • その後、最初の値のみが選択されます

4

1 に答える 1

0

3番目の要素を選択してリストボックスをリロードするなど、2つ以上の他のイベントに問題があるようです。申し訳ありませんが、私はまだコメント権を持っていませんが、1 番目を選択してから 3 番目を選択してから 1 番目を選択して、2 番目に 1 番目を選択した後に 2 つのイベントを取得することはできますか?

于 2014-01-15T17:40:00.730 に答える