【发布时间】:2019-06-26 12:45:32
【问题描述】:
我有一个有多种形式的应用程序。 在其中一个表单上,我有一个空的选项卡控件。 在运行时,用户在文本框中输入一个字符串。 该字符串用于创建一个使用该字符串作为其 .text 属性的新选项卡 此外,在该新选项卡上创建了一个列表框,其 .name 属性也与用户输入的字符串同名。
所以从空的 tabcontrol 开始 用户输入字符串 以字符串为名称创建新选项卡 创建了新的列表框,并以字符串为名称的新列表。
然后一个向导启动并向用户提问,其答案存储在一个字符串数组中,然后连接成一个长字符串,添加到列表框中。
我在退出时保存选项卡、列表框和列表项,并在加载时替换。
现在,当用户双击列表框项时,我想显示一个对话框,使用列表中的字符串来显示数据。
但是,这是我的问题: 每个选项卡和列表都有一个 .name 属性,该属性由用户在该文本框中输入的任何内容分配。
所以可以说它是“出租车” 我在名为 Taxi tabcontrol1.tabpage.item(0) = "Taxi" 的控件上有一个选项卡 以及该选项卡上带有 Taxi .name 属性的列表框控件 所以 Taxi.item(0) 将是 Taxi 中的第一个列表项,它是一个列表框控件
但由于我在运行时以编程方式创建了这些 .name 属性, 我现在如何处理 listbox.name 属性以在列表框的项目成员的单击事件后面编写代码?
'industry is the user inputted string
TabControl1.TabPages.Add(industry)
TabControl1.Refresh()
TabControl1.SelectedTab = TabControl1.TabPages.Item(industry)
TabControl1.Parent = Me.ActiveControl.Parent
Dim newListbox As New System.Windows.Forms.ListBox
Dim locationpoint As Point
newListbox.Parent = TabControl1.SelectedTab
newListbox.Width = 1154
newListbox.Height = 498
locationpoint.X = 0
locationpoint.Y = 0
newListbox.Location = locationpoint
newListbox.Name = industry
newListbox.BorderStyle = BorderStyle.Fixed3D
newListbox.CreateControl()
Dim counttabs = TabControl1.TabCount
TabControl1.SelectedIndex = counttabs
Me.TabControl1.SelectTab(counttabs - 1)
TabControl1.SelectedTab.Controls.Add(newListbox)
newListbox.Dock = DockStyle.Top
TabControl1.SelectTab(industry)
【问题讨论】:
-
您需要使用
AddHandler语句为您的ListBox添加点击事件处理程序。在您的处理程序中,sender参数是被点击的ListBox。 -
对我来说这比 vb 更希腊化
-
你能用代码向我描述一下吗?
-
我想我有点明白了。我将为列表框的单击事件创建一个处理程序,并以某种方式告诉该处理程序处理选项卡上的任何列表框?
-
在阅读之后...看起来如果我按照你的建议做,如果我理解语法,我必须使用指向列表框的句柄子句,问题是我当用户单击或理想情况下双击列表框中的项目时,我无法以任何方式解决我知道该列表框的列表项。现在它是taxi.items(0) 但它可能是dentity.items(0) 我无法知道用户将如何命名选项卡并最终命名列表框的listbox.name 属性放置在运行时的选项卡。
标签: vb.net events listbox click runtime