我的项目是在vb net中实现的。我有一个主窗体,它有button1和一个flowoutpanel
当我按下按钮时,动态显示一个按钮并放在flowoutpanel内
同时它从combobox1获取所选文本并将其显示在动态按钮属性上
它也保存在另一个组合框中,该组合框存储所有字符串以便稍后进行并按下保存以显示在文本框中。
如果我单击动态按钮,它会关闭并消失
这就是我被困住的地方
我想知道当我删除动态按钮时是否有任何方法,还要删除从存储字符串的组合框中显示的文本属性。
我想这样做,因为当你从combobox1中选择一个字符串值并添加许多动态按钮时,你可能想要删除第一个。
但在这种情况下,它不会从存储它们的组合框中删除正确的字符串值
换句话说,我正在寻找一种方法来添加到动态button_click sub(从我的代码中可以看到),这将从组合框中删除第一个动态按钮的文本值。
我尝试了类似的东西:Me.FlowLayoutPanel4.Controls.RemoveAt(0)但它会删除位置0的值。
提前谢谢,我在下面附上我的代码。
Private Sub DynamicButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
MessageBox.Show("Dynamic Button is clicked.")
Me.FlowLayoutPanel5.Controls.RemoveAt(0)
End Sub
以上是单击按钮时触发的代码。
下面是动态创建按钮的代码:
Sub CreateDynamicButton()
' Create a Button object
Dim dynamicButton As New Button
' Set Button properties
dynamicButton.Location = New Point(584, 90)
dynamicButton.Height = 20
dynamicButton.Width = 52
' Set background and foreground
dynamicButton.BackColor = Color.Green
dynamicButton.ForeColor = Color.Blue
dynamicButton.Text = ComboBox6.Text
dynamicButton.Name = "DynamicButton"
dynamicButton.Font = New Font("Georgia", 8)
AddHandler dynamicButton.Click, AddressOf DynamicButton_Click
' Add Button to the Form. Placement of the Button
' will be based on the Location and Size of button
Me.FlowLayoutPanel1.Controls.Add(dynamicButton)
End Sub
或者,如果有办法做这样的事情:
textbox.text=dynamicbutton.text
答案 0 :(得分:0)
你可以让一个子程序为你做这样的事情应该工作,它使用ComboBox.ObjectCollection.Contains
方法来检查项目是否存在,然后它正在使用
ComboBox.ObjectCollection.IndexOf
获取商品的索引位置,以便您可以使用ComboBox.ObjectCollection.RemoveAt
方法将其删除。
Public Sub RemoveItem(item As String, values As ComboBox.ObjectCollection)
If values.Contains(item) Then
values.RemoveAt(values.IndexOf(item))
End If
End Sub
Usuage:
RemoveItem("your string value here", ComboBox1.Items)