【问题标题】:How do I add items to a listbox inside a user control?如何将项目添加到用户控件内的列表框?
【发布时间】:2020-06-25 01:09:54
【问题描述】:

我有一个用户控件 (XListBox),上面有一个列表框 (ListBox1) 和一个按钮。用户控件位于一个窗体 (Form1) 上,该窗体上也有一个按钮。代码如下所示。如果单击用户控件内的按钮,则文本“从 XListBox 内部添加项目”出现在列表框中没有问题。但是,如果我单击表单上的按钮,则字符串“从表单向 XListBox 添加项目”不会添加到列表框中,尽管 Debug.Print 确实在输出窗口中显示了它。看来我错过了一些东西,但我不知道是什么。任何帮助,将不胜感激。提前致谢。

Public Class Form1

    Dim lstActions As New XListBox

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        '
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        lstActions.AddItem("Add item to XListBox from form")
    End Sub

End Class

Public Class XListBox ' user control

    Private Sub XListBox_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        '
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ListBox1.Items.Add("Add Item from inside XListBox")
    End Sub

    Public Sub AddItem(sString As String)
        ListBox1.Items.Add(sString)
        Debug.Print(sString)
    End Sub

End Class

【问题讨论】:

  • 正如 jmcilhinney 所说,使用表单上已经存在的 UserControl 的名称。默认情况下,如果您的 UserControl 名为“XListBox”,那么您在表单上放置的第一个控件将称为“XListBox1”。如果您没有更改名称,那么在您的点击处理程序中您只需编写XListBox1.AddItem("something")

标签: vb.net listbox user-controls


【解决方案1】:

为什么你的代码中有这个?

Dim lstActions As New XListBox

您肯定在设计器中将用户控件添加到表单中,就像您添加任何其他控件一样。您通常如何访问在设计器中添加到表单的控件?基本上,您忽略了在设计器中添加的那个,即您可以看到的那个,并且您创建了另一个从未添加到表单中的那个,所以您看不到它,这就是您要添加的那个的项目。不。删除该字段并使用您在设计器中添加的字段。

【讨论】:

  • 令人惊讶的是,您可以忽略显而易见的事情多久。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多