タイトル : 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 |