0

MsFlexGridオブジェクトのクリックイベントを呼び出す必要があります。

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

問題は、実際にフレックスグリッドをクリックすると、この部分が正常に機能することです。

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

コンボボックス内の必要なアイテムが選択されていません。だから、何かをクリックすることとクリックイベントを呼び出すことの違いだと思いますが、私には何がわかりません。コンボボックスのテキストを好きなように設定できることはわかっていますが、ユーザーに許可してはいけないので、スタイル属性をドロップダウンリストに設定しました。

教えてくれませんか?

前もって感謝します。

4

1 に答える 1

1

マウスでクリックすると、複数のイベントが呼び出されます (そのうちのいくつかは VB6 で公開されていない可能性があります)。クリック イベント コードは、これらのイベントの 1 つの一部として実行されます。Grid.Click() を呼び出しても、マウス クリックはシミュレートされません。

2 番目のコードが何をしようとしているのかわかりませんか? ColSel を設定すると、.Col と .ColSel の間の列が選択されるため、ループによって選択サイズが大きくなります。実際にはすべての列を選択するので、なぜわざわざ?

テキストを取得する列をループするようにクリック イベントを変更してみませんか?

于 2012-09-12T12:29:15.470 に答える