调用vb6中的msflexgrid点击事件



我必须为MsFlexGrid对象调用click事件。

Private Sub MSFlexGridboxcodelist_Click()
box_code = Trim(Me.MSFlexGridboxcodelist.TextMatrix(Me.MSFlexGridboxcodelist.RowSel, 1))
box_type = Trim(Me.MSFlexGridboxcodelist.TextMatrix(Me.MSFlexGridboxcodelist.RowSel, 7))
Me.Txtpack_weight.text = Trim(Me.MSFlexGridboxcodelist.TextMatrix(Me.MSFlexGridboxcodelist.RowSel, 5))
Dim x As Integer
For x = 0 To Me.Combobox_type.ListCount - 1
    If Me.Combobox_type.List(x) = box_type Then
        Me.Combobox_type.ListIndex = x
        Exit For
    End If
Next
End Sub

问题是,当我真正点击flexgrid时,这部分工作正常:

Me.Combobox_type.ListIndex = x

但当我这样做时:

Me.MSFlexGridboxcodelist.row = i
Me.MSFlexGridboxcodelist.TopRow = i
Me.MSFlexGridboxcodelist.RowSel = i
For x = 0 To Me.MSFlexGridboxcodelist.cols - 1
    Me.MSFlexGridboxcodelist.ColSel = x
Next x
Call MSFlexGridboxcodelist_Click

未选择组合框中所需的项目。所以我想点击某个东西和调用点击事件是有区别的,但我不知道是什么。我知道我可以将组合框的文本设置为我想要的任何内容,但不应该允许用户这样做,所以我将其样式属性设置为下拉列表。

你们能给我小费吗?

提前谢谢。

通过鼠标单击将调用多个事件(其中一些事件可能不会在VB6中公开)。单击事件代码将作为其中一个事件的一部分运行。调用Grid.Click()不会模拟鼠标单击。

不确定第二段代码要做什么?设置ColSel将选择介于.Col和.ColSel之间的列,这样循环将设置一个不断增加的选择大小。事实上,它会选择每一列,所以为什么要麻烦呢?

为什么不将单击事件更改为在检索文本的列中循环?

最新更新