c#listbox selectedItem无效

时间:2015-09-02 13:47:41

标签: c# listbox selecteditem

好的,我希望有人尝试这个并给我一个具体的工作答案。 我有一个包含项目的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(); //

但在我实际点击列表框

之前,列表框项仍未复制到文本框中

2 个答案:

答案 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;

这可能会引发这一事件。