【问题标题】:vb.net combobox hide itemvb.net 组合框隐藏项目
【发布时间】:2015-01-21 16:14:39
【问题描述】:

我有一个组合框,当该项目被选中时,它与其他形式的 button.text 相同,button.text 更改为用户在文本框中键入的名称。但是如果 item 与 button.text 不同,我想隐藏它,这样用户就无法选择或看到它。

cafetariacombo 是组合框
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

当我从组合框中删除项目时,我在 form1 中,当我再次添加项目时,我在 form2 中。
当我离开form1时,只需要保存带有已删除项目的组合框。

【问题讨论】:

  • 您“隐藏”了一个组合框项目,不将其包含在其 Items 集合中。唯一的办法。
  • 您可以使用cafeteriacombo.Items.Remove("cafeteria2") 删除“cafeteria2”项。

标签: vb.net combobox


【解决方案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

【讨论】:

  • 我自己尝试过之后不明白这一点:/ 你能告诉我使用 DataTable 作为数据源是否可以做这样的事情吗?例如:If Combobox1.item="snacks1" = form3.snacks1.text then combobox1.item="snacks1" show else Combobox1.item="snacks1" do not show end if 这不起作用,ofc,但希望我能告诉你我想做什么
  • @user3740783:如何将项目添加到组合框中?请在您的问题中添加相关代码。然后我将更新我的代码以显示如何将其更改为使用 DataTable 数据源。
  • @user3740783: I inserted the list of items myself in the combobox. .Items.Add 或类似内容的文章。如果您添加所需行为的屏幕截图,也可以帮助解释一下。
猜你喜欢
  • 2011-04-15
  • 2016-11-01
  • 1970-01-01
  • 2018-06-04
  • 1970-01-01
  • 1970-01-01
  • 2018-02-05
  • 1970-01-01
  • 2019-03-29
相关资源
最近更新 更多