2014-11-24 56 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