请问程序为何执行Combo1_Click()这个过程,代码如下:
Private Sub Combo1_Click()
Command1_Click
End Sub
.............
Private Sub Form_Load()
    AddCourse
    Text2.Text = 1
End SubPrivate Sub Form_Resize()
    'Command1.SetFocus
End SubPublic Sub AddCourse()
    With Combo1
.........
        .ListIndex = 4
    End With
End Sub

解决方案 »

  1.   

    donn't  still understand what I mean.when I start to run my program.VB will run the procedure the following action:Form1_load,AddCourse,and Combo1_Click,Why does Procedure Combo1_Click executed(in my mind,in the beginning of initial procedure,Combo1_Click wonn't run)
      

  2.   

    Private Sub Command1_Click()
        MsgBox "Command1_Click"
    End SubPrivate Sub Command2_Click()
        Call Command1_Click
    End Sub
      

  3.   

    楼主,你说得很对,这个问题相当讨厌:问题在如下代码中
    Public Sub AddCourse()
        With Combo1
    .........
            .ListIndex = 4
        End With
    End Sub当你给Combo1.listindex赋值4时,就会执行Combo1.click事件。我的处理方法是,设置一个全局变量,Combo1没有得到焦点时(它不可能被点击)该变量为假,得到焦点时才为真,当Combo1.click需要执行时,须判断这个全局变量是否为真。这样就会避免执行Combo1.click事件
      

  4.   

    With Combo1
    .........
            .ListIndex = 4  
    你的这一句触发了Combo1_Click,Combo1_Click触发了Command1_Click    End With
      

  5.   

    我记得 Combo 对它的 listIndex 赋值的时候就是会 触发 Click 事件。它就是设计成这个样子的。    With Combo1
    .........
            .ListIndex = 4
        End With
      

  6.   

    代码如下:
    dim ttag as booleanPrivate Sub Combo1_Click()
       If ttag = True And Combo1.Text <> "" Then
          List1.AddItem Combo1.Text
       End If
    End SubPrivate Sub Combo1_GotFocus()
       ttag = True
    End SubPrivate Sub Combo1_LostFocus()
       ttag = False
    End Sub
      

  7.   

    Thanks all!Scores is coming to you all!
      

  8.   

    如果不是简单模式,你还不如直接把combo的text属性设为想要显示的文本,当然如果选项比较重要,还只有用上面的方法了.