好的,我希望有人尝试这个并给我一个具体的工作答案。 我有一个包含项目的ListBox控件,我有一个ListBox.SelectedIndexChanged的事件处理程序。
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
updateTextBox2(); //sets the selectedIndexItem to textbox2
}
在另一个函数中我有这段代码:
listBox1.SelectedIndex = (listBox1.SelectedIndex + 1) % listBox1.Items.Count;
它确实移动到下一个项目,但它不会引发事件。
我也在没有提出事件的情况下尝试了这个
listBox1.SelectedIndex = (listBox1.SelectedIndex + 1) % listBox1.Items.Count;
updateTextBox2(); //
但在我实际点击列表框
之前,列表框项仍未复制到文本框中答案 0 :(得分:0)
试试这个
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
updateTextBox1();
}
private void updateTextBox1()
{
textBox1.Text = Convert.ToString(listBox1.SelectedIndex);
}
private void button1_Click(object sender, EventArgs e)
{
listBox1.SelectedIndex = (listBox1.SelectedIndex + 1) % listBox1.Items.Count;
listBox1_SelectedIndexChanged(sender, e);
}
如果您想通过其他方法提升事件,则需要使用
listBox1_SelectedIndexChanged(sender, e);
只有在您调用时才会自动引发该事件。 你也可以调用更新方法,id需要查看更多代码才能理解为什么它不起作用。
private void button1_Click(object sender, EventArgs e)
{
listBox1.SelectedIndex = (listBox1.SelectedIndex + 1) % listBox1.Items.Count;
updateTextBox1();
}
答案 1 :(得分:0)
我不知道它是否适用于ListBox,但我知道它适用于ListView,所以它值得一试。请尝试这样设置选择:
listBox1.Items[listBox1.SelectedIndex].Selected = false; // Not 100% sure the Items have a Selected property
listBox1.Items[(listBox1.SelectedIndex + 1) % listBox1.Items.Count].Selected = true;
这可能会引发这一事件。