2014-11-24 98 views
0

我有一个组合框,当该项目被选中并且与其他形式的button.text相同时,button.text会更改用户在文本框中键入的名称。但是,如果该项目是不同的button.text我想隐藏它,所以用户不能选择它或看到它。vb.net combobox hide item

cafetariacombo是ComboBox
Form3.cafetaria2.Text是按钮我改变

If cafetariacombo.SelectedItem = "cafetaria2" Then 
       Form3.cafetaria2.Text = TextBox1.Text 
       My.Settings.cafetaria2guardar = Form3.cafetaria2.Text 
       My.Settings.Save() 
end if 

我用这个来命名的按钮,我只需要知道,如果我可以隐藏组合框项目。

请帮助我:)

更新一些代码

我在组合框中插入项目列表自己。 我解决了我以前的问题,但现在我需要保存组合框项目的状态,当我离开表单。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
      If cafetariacombo.SelectedItem <> Form3.cafetaria1.Text Then 
     cafetariacombo.Items.Remove("cafetaria1") 
    End If 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If ComboBox2.SelectedItem = Form3.cafetaria1.Text Then 
     Form3.cafetaria1.Text = "cafetaria1" 
     My.Settings.cafetaria1guardar = Form3.cafetaria1.Text 
     My.Settings.Save() 
     adicionarproduto.cafetariacombo.Items.Add("cafetaria1") 
    end if 
    end sub 

当我从ComboBox我在Form1是去除项目,当我再次添加的项目我在窗口2。
当我离开form1时,只需要保存带有已删除项目的组合框。

+0

你“隐藏”的组合框项目通过不包括它的Items集合中。唯一的办法。 – 2014-11-24 01:24:21

+0

您可以使用'cafeteriacombo.Items.Remove(“cafeteria2”)'移除“cafeteria2”项目。 – 2014-11-24 11:51:17

回答

1

您可以使用一个DataTable作为数据源,那么它的变化DefaultView.RowFilter容易,请研究这个例子,让我知道,如果你有任何问题:

Public Class Form1 

    Private Sub Button1_Click(sender As System.Object, 
          e As System.EventArgs) Handles Button1.Click 
    Dim dt As New DataTable 
    dt.Columns.Add("id") 
    dt.Rows.Add("1") 
    dt.Rows.Add("2") 
    dt.Rows.Add("3") 
    ComboBox1.DisplayMember = "id" 
    ComboBox1.DataSource = dt 'show all items by default 
    End Sub 

    Private Sub Button2_Click(sender As System.Object, 
          e As System.EventArgs) Handles Button2.Click 
    DirectCast(ComboBox1.DataSource, DataTable).DefaultView. 
     RowFilter = "id <> 2" 'hide item=2 from the view 
    End Sub 

End Class 
+0

自己尝试后,我不明白这一点:/你可以告诉我,如果使用DataTable作为数据源,我可以这样做吗?例如:'如果Combobox1.item =“snacks1”= form3.snacks1.text然后combobox1.item =“snacks1”显示其他Combobox1.item =“snacks1”不显示结束如果这不起作用,ofc,但希望我给你,我想做什么的想法 – user3740783 2014-11-24 04:11:48

+0

@ user3740783:你如何添加项目到组合框?请在您的问题中添加相关代码。然后,我将更新我的代码以显示如何将其更改为使用DataTable数据源。 – Neolisk 2014-11-24 12:33:30

+0

@ user3740783:'我在combobox中插入了自己的项目列表。<< - 请添加相关的代码。我正在寻找一个说'.Items.Add'或类似的东西。如果您添加了所需行为的屏幕截图,它也可以帮助解释一下。 – Neolisk 2014-11-25 02:58:33