如何检查所选项目是否已从先前选择的项目更改?

时间:2012-09-21 12:41:39

标签: c# winforms listbox

我的winform中有一个列表框,当选择列表框中的某个项目时,会将值放入同一表单中的文本框中。我的列表框中有很多项目,选中后,我希望文本框为空,这样我就可以传入新值。如何检查用户是否点击了其他初始选定项目?我得到如下所示的当前项目:

var selectedItem = (ReportItems)listbox.selectedItem

4 个答案:

答案 0 :(得分:0)

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

用户更改了所选项后,使用'selItem'变量检查“new”selectedItem ..我不认为列表框有一个方法可以检查选择是否与前一个相比有所改变。

答案 1 :(得分:0)

您可以在ListBox上使用SelectedIndexChanged活动。您可以为此事件创建事件处理程序,以确定ListBox中所选索引的更改时间。当您需要根据ListBox中的当前选择在其他控件中显示信息时,这非常有用。您可以使用此事件的事件处理程序在其他控件中加载信息。

请参阅MSDN文档:link

答案 2 :(得分:0)

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

除此之外,我建议的内容并不多,因为您的问题并非非常清晰,并且没有可查看的代码。

答案 3 :(得分: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();
    }