0

I have a listbox in my winform, when an item in the listbox is selected, a value is placed into a textbox in the same Form. There my many items in my listbox which when selected, i want the text box to be empty so i can pass in the new value. 我如何检查用户是否点击了他们最初选择的项目以外的东西?我得到如下当前选择的项目:

var selectedItem = (ReportItems)listbox.selectedItem
4

4 回答 4

1

您可以SelectedIndexChangedListBox. 您可以为此事件创建一个事件处理程序,以确定何时ListBox更改了 中的选定索引。当您需要根据 ListBox 中的当前选择在其他控件中显示信息时,这会很有用。您可以使用此事件的事件处理程序来加载其他控件中的信息。

请参阅 MSDN 文档:链接

于 2012-09-21T12:46:45.770 回答
0

您可以为您的 ReportItems 添加一个全局变量并将其命名为“selItem”。

在用户更改所选项目后,您使用“selItem”变量检查“新”selectedItem。我认为列表框没有一种方法可以检查选择是否与前一个相比发生了变化。

于 2012-09-21T12:46:08.993 回答
0

我不确定你是否有理由不利用SelectionChanged事件,ListBox但如果你没有,你应该这样做。此外,确定它是否与最初选择的项目不同应该非常简单,因为您可以将最初选择的项目保存在private表单中的变量中,并在每次SelectionChanged触发方法处理程序时进行比较。

除此之外,我没有什么可以建议的了,因为你的问题不是清楚,也没有代码可以看。

于 2012-09-21T12:50:27.060 回答
0

我的解决方案是始终先清除文本框。因此,一旦用户在列表视图中选择了一个项目,而不是立即填充文本框,请在填充之前清除文本框。

明文();单击列表框项时立即调用。

    public void clearText()
    {
        textBox1.Clear();
        textBox2.Clear();
        textBox3.Clear();
        textBox4.Clear();
        textBox5.Clear();
        textBox6.Clear();
        textBox7.Clear();
        textBox8.Clear();
        textBox9.Clear();
        textBox10.Clear();
        textBox11.Clear();
        textBox12.Clear();
    }
于 2012-09-21T13:08:00.330 回答