中国禁止穆斯林穿黑袍:我在combobox下有3个选择,分别是1,2,3,如何实现选择1时,当前窗体隐藏,1窗体显示

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/20 19:51:30
我用下列语句时
Private Sub Combo1_Click()
If Combo1.Text = 3 Then
Me.Hide
Form3.Show vbModal
End If
End Sub
但是他说 “编译错误:类型不匹配”
Private Sub Combo1_Click() 此句显黄色,这是问什么啊

原因:
这是因为Combo.text 属性是 String 数据类型,而你上一句中的=3“3”是Long数据类型,所以无法比较

解决方案:
1.使用文本比较方式 =3 改为 ="3" (加双引号)
2.使用数字比较Combo1.Text改为CLng(Val(Combo1.Text))
3.使用ComboBox的Index 属性
If Combo1.Text = 3 Then
改为
If Combo1.ListIndex = 2 Then

方案比较:
方案3最快也最好,因为它不用或者ComboBox里面的文本,而是直接活得用户选择的项目。

===========================
参考:(MSDN)ListIndex 属性

返回或设置控件中当前选择项目的索引在设计时不可用。

语法

object.ListIndex [= index]

ListIndex 属性语法包含下面部分:

部分 描述
object 对象表达式,其值是“应用于”列表中的一个对象。
index 数值表达式,指定当前项目的索引,“设置值”中有详细说明。

设置值

index 的设置值为:

设置值 描述
-1 (ComboBox、DirListBox 和 DriveListBox 控件的缺省值)表示当前没有选择项目;对于 ComboBox 控件,表示用户向文本框部分输入了新文本;对于 DirListBox 控件,表示当前路径的索引。对 DriveListBox 控件,表示在运行时创建该控件时的当前驱动器的索引。
n (FileListBox 和 ListBox 控件的缺省值)表明当前选择项目的索引。

说明

表达式 List(List1.ListIndex) 返回当前选择项目的字符串。

列表中的第一项是 ListIndex = 0,ListCount 始终比最大的 ListIndex 值大 1。

对于可以做多重选择的控件,该属性的行为取决于所选择项目的个数。如果只选择了一个项目,ListIndex 返回该项目的索引。在多重选择中,ListIndex 返回包含在焦点矩形内的项目的索引,而不管该项目是否被选。

Private Sub Combo1_Click()
If Combo1.Text = "3" Then
Me.Hide
Form3.Show vbModal
End If
End Sub
Combo1.Text是字符类型的,要加引号