【问题标题】:How can I read the SelectedItem of a Listbox?如何读取列表框的 SelectedItem?
【发布时间】:2019-05-16 22:00:01
【问题描述】:

我正在尝试让列表框中的选定文本显示在列表框中。
我有一个按钮,当我单击时,将在 ListBox 中显示选定项的文本。

我已经尝试使用Listbox.SelectedItem 让列表框在文本框中显示文本:

Listbox1.SelectedItem = Textbox1.Text

当我这样做时,我得到了错误:

System.NullReferenceException: '对象变量或带有块变量 未设置。'

【问题讨论】:

    标签: vb.net winforms listbox


    【解决方案1】:

    您的描述有些颠倒。
    目前尚不清楚您是要使用TextBox 的文本设置ListBox.SelectedItem,还是要使用ListBox 的SelectedItem 的文本设置TextBox.Text

    代码说明一件事,描述说明另一件事。您遇到的错误可能是由 null SelectedItem 引起的(您没有选择任何内容)。
    但是,如果您想使用ListBox.SelectedItem 文本设置TextBox.Text,您可以使用GetItemText() 方法。此方法有一个优点,如果 Listbox 没有选定项(SelectedItem 为 null (nothing)),它不会引发异常。

    TextBox1.Text = ListBox1.GetItemText(ListBox1.SelectedItem)
    

    相反:
    您可以使用ListBox FindString()FindStringExact() 方法来定位控件集合中与给定字符串对应的项。 前者查找 ListBox 中以指定字符串开头的第一个项目,后者仅匹配整个字符串。
    搜索可以从特定索引开始。它不区分大小写。

    listBox1.SelectedIndex = listBox1.FindString(textBox1.Text, 0)
    ' or
    listBox1.SelectedIndex = listBox1.FindStringExact(textBox1.Text, 0)
    

    您可以指定先前找到的项目的索引作为起点继续搜索:

    private int lboxSearchIndex = -1;
    
    Private Sub ButtonSearch_Click(sender As Object, e As EventArgs) Handles ButtonSearch.Click
        lboxSearchIndex = listBox1.FindString(textBox1.Text, lboxSearchIndex)
        listBox1.SelectedIndex = lboxSearchIndex
    End Sub
    

    设置SelectedItem 就像使用FindStringExact() 方法。
    只有完全匹配才会设置项目,但它区分大小写。

    【讨论】:

      【解决方案2】:

      Listbox1.Text=textbox1.text 让我知道它对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多