2012-02-03 92 views
2

我有一个小问题,我创建了一个简单的搜索应用程序,它有一个文本框和一些组合框以及单选按钮和一个搜索按钮。 单选按钮名称“视频”,“音频”,“图片”等。 当选择视频单选按钮时,出现选项“YouTube”,“Metacafe”等组合框等 我希望当我点击“Metecafe”项目在视频组合框中,其他组合框出现具有诸如“娱乐”,“如何”,“+18”等(视频搜索类别)的项目。 所以“如何显示/隐藏与COMBOBOX项目帮助其他COBOXOX” 希望你已经理解我的问题。 screen shoot 我不知道它是可以或不可以becux我在VB初学者 我的英语不太好,请参见下面的代码:)用组合框项目帮助显示/隐藏另一个组合框

if combobox1.SelectedItem = "PAKISTAN" Then 
    combobox2.Visible = True 
End if 

if combobox1.SelectedItem = "INDIA" Then 
    combobox3.visible = true 
    combobox2.visible = false 
End if 

显然这个代码是错误的,这是一个例如什么我想要做 感谢所有提前..

注: 我有尝试这个代码,但它不工作..

if ComboBox1.Items(ComboBox1.SelectedIndex).ToString() = "PAKISTAN" Then 

    ComboBox2.Visible = True 

End if 

个遗憾的拼写和语法错误:(

回答

3

尝试使用SelectedItem物业这样

Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged 
    If ComboBox1.SelectedItem.ToString = "PAKISTAN" Then 
     ComboBox2.Visible = True 
    End If 
End Sub 

既然你是想检查多个国家的,你可以使用Select Case声明这样

Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged 

    Select Case ComboBox1.SelectedItem.ToString 
     Case "PAKISTAN" 
      ComboBox2.Visible = True 
      ComboBox3.Visible = False 
     Case "INDIA" 
      ComboBox3.Visible = True 
      ComboBox2.Visible = False 
     Case Else 
      ComboBox2.Visible = False 
      ComboBox3.Visible = False 
    End Select 
End Sub 
+0

已解决OMG! [感谢](http://2.bp.blogspot.com/-IDTN-bZpzVI/TicIm_oBlYI/AAAAAAAAGH0/dlTECyJKWrs/s640/thanks.gif)非常感谢Mark。 感谢所有人的快速反应感谢分配注意有一个美好的一天:-) – 2012-02-04 07:57:48

0
If ComboBox1.Items(ComboBox1.SelectedIndex).ToString() = "PAKISTAN" Then 

    ComboBox2.Visible = True 

End If 
+0

确定让我们看看会发生什么..等等。 – 2012-02-02 18:21:38

+0

没有它的不工作.. :-( – 2012-02-02 18:58:07

+0

它是否编译?您是否设置了断点并检查了Combobox1.Items(Combobox1.SelectedIndex).ToString()的值?请提供更多信息以获取其他帮助。 – N0Alias 2012-02-02 19:43:27

1

这里有两件事很重要:

(a)您正在使用哪个事件/检测/组合框已更改,并且
(b)您用于检测选定内容的代码。

我没有测试过这一点,我是从一个C#/ VB6背景的人,所以忍耐一下,如果这不是100%正确的,但我相信使用下面应该工作:

内ComboBox1的SelectedIndexChanged事件,上面插入你的代码,除非..变化情况类似

combobox1.SelectedItem = "PAKISTAN" 

ComboBox1.Text = "PAKISTAN" 

selectedItem属性输出所选项目对象本身,这是一种无法显示的变量类型。不是当前选定项目的/ text /。还有其他方法可以访问与该项目关联的文本,但ComboBox1.Text是最简单的。 ComboBox1.SelectedItem.ToString()也可以。

+0

SelectedIndex为您提供索引,SelectedItem为您提供选定的对象。 – 2012-02-03 18:55:37

+0

更正,我误读。 – 2012-02-03 18:58:26

+0

感谢德鲁阿尔登,我的问题现在由马克解决。 – 2012-02-04 08:00:52

0

btw这是一个网络客户端或窗口客户端?

假设您正在实施Web客户端应用程序且条件逻辑很简单,您可能需要触发一个页面重新加载,这可以通过指定事件并将属性设置为重新加载来启用。我最初从阅读你的文章是因为你的GUI可能不会刷新或重新加载,除非你的意图是不重新加载页面或刷新GUI,那么这应该用JavaScript来处理。

我希望我正确地解释这个问题,希望这会给你一些关于如何解决这个问题的想法。