リストボックスを含むフォームに UserControl があります。リストボックスの最初のアイテムを自動的に選択したいのですが (少なくとも 1 つのアイテムがあると仮定します)、次のコードが機能しません。
private void Lightnings_Mode_Load(object sender, EventArgs e)
{
this.Size = new Size(416, 506);
this.Location = new Point(23, 258);
listBoxIndexs();
listBoxControl1.MyListBox.SelectedIndex = 0;
if (this.listBoxControl1.MyListBox.Items.Count > 0)
this.listBoxControl1.MyListBox.SelectedIndex = 0;
listBoxControl1.MyListBox.SelectedIndexChanged += new EventHandler(listBox1_SelectedIndexChanged);
this.listBoxControl1.ItemRemoved += new EventHandler<ItemEventArgs>(listBoxControl1_ItemRemoved);
}
この行: listBoxControl1.MyListBox.SelectedIndex = 0; 選択されているように、最初の ListBox 項目を青色でマークします。しかし、それは実際にはアイテムを選択することではありません!
だから私はこれを追加しようとしました:
if (this.listBoxControl1.MyListBox.Items.Count > 0)
this.listBoxControl1.MyListBox.SelectedIndex = 0;
しかし、それも機能していません。
これは SelectedIndex イベントです。
private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
item = listBoxControl1.MyListBox.SelectedItem.ToString();
this.f1.PlayLightnings();
f1.pdftoolsmenu();
int indx = listBoxControl1.MyListBox.SelectedIndex;
if (listBoxControl1.Indices.Contains(indx))
{
if (item != null && !pdf1.Lightnings.Contains(item.ToString()))
{
pdf1.Lightnings.Add(item.ToString());
}
}
}
イベントの名前が正しくありません。UserControl 上の ListBox であるため、変更する必要がありますが、正しい名前です。
SelectedIndex イベントにブレークポイントを設定してアイテムをクリックすると、ブレークポイントで停止します。しかし、UserControl と ListBox を使用して新しいフォームを表示/開くと、自動的に selectedIndex イベントに移動したいと考えています。
そのため、SelectedIndex イベントにブレークポイントを設定すると、Form1 のボタンをクリックして新しいフォームを表示/開くと、最初の項目をクリックしたときのようにブレークポイントで自動的に停止します。
これは、新しいフォームを表示するコードの Form1 にあります。
if (toolStripComboBox2.SelectedIndex == -1 && toolStripComboBox1.SelectedIndex == -1)
{
}
else
{
Lightnings_Extractor.Lightnings_Mode lightningsmode1 = new Lightnings_Extractor.Lightnings_Mode(this);
lightningsmode1.Show();
}
最初のアイテムを自動的に選択することを除いて、すべてが機能しています。