vbnet动态按钮,当它被删除时,它将从文本框中删除文本

时间:2014-07-21 18:57:07

标签: vb.net

我的项目是在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

1 个答案:

答案 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)