tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: ラベルでイベントが起こらなくなる
投稿日: 2011/08/23(Tue) 13:29
投稿者YK
こんにちは。

> ラベルの数は150個くらいのコントロール配列で、実際の数は取得したいCaptionによって変動します
> それらを電卓のように並べクリックするとCaptionを取得するのですが、いくつかイベントに反応しないラベルが存在します。そしてそれらは毎回ではなくかつ反応しなくなるIndexもバラバラです。

WithEventsを使った例です。
新規フォームを追加して実行してみて下さい。
ラベルをクリックしてみて下さい。
尚、160個のラベルを動的に追加しています。
フォームの大きさも指定してあります。

Option Explicit
Private WithEvents frmLbl   As Label
Private frmIndex            As Long
Private SubForm()           As Form1

Friend Sub Init(ByVal fLbl As Label)
    Set frmLbl = fLbl
End Sub

Friend Sub fIndex(ByVal fIdx As Long)
    frmIndex = fIdx
End Sub

Private Sub Form_Load()
    Dim i       As Long
    Dim j       As Long
    Dim cnt     As Long
    Dim Lbl(159) As Label
    
    For i = 1 To 20
        For j = 1 To 8
            cnt = ((i - 1) * 8) + (j - 1)
            Set Lbl(cnt) = Controls.Add("VB.Label", "Label" & cnt)
            With Me
                .Height = 10875
                .Left = 120
                .Top = 0
                .Width = 14055
            End With
            With Lbl(cnt)
                .Appearance = 0
                .BorderStyle = 1
                .Left = (j - 1) * 1680 + 270
                .Top = (i - 1) * 500 + 210
                .Height = 375
                .Width = 1605
                .Visible = True
            End With
            ReDim Preserve SubForm(cnt)
            Set SubForm(cnt) = New Form1
            SubForm(cnt).Init Lbl(cnt)
            SubForm(cnt).fIndex cnt
        Next
    Next
End Sub

Private Sub frmLbl_Click()
    MsgBox "Clicl No. = " & frmIndex
End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。