アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB.NET 2005で動的コントロールを複数作成し、
クリックされた動的コントロールのインデックスを
調べる方法はないでしょうか?

以下の様に動的コントロールLabel01とLabel02が複数並んでいて
Label01(3)をクリックした時に、Label02(3)も同時に処理
したいのでインデックスを調べたいのですが方法がわかりません。

[Label01(1)] [Label02(1)]
[Label01(2)] [Label02(2)]
[Label01(3)] [Label02(3)]
[Label01(4)] [Label02(4)]
[Label01(5)] [Label02(5)]
   :      :
[Label01(x)] [Label02(x)]

'-----------------------------------------------
'Label01(3)がクリックされたら、Label02(3)も"ok"を表示する
Private Sub Lab01_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Dim lab01 As Label = CType(sender, Label)
System.Diagnostics.Debug.WriteLine(lab01.Text & "が押されました。")
lab01.Text = "ok"
lab02(?).Text = "ok"  '←インデックスがわかりません

End Sub
'-----------------------------------------------

A 回答 (1件)

コントロールを作成した際に Tagプロパティにインデックス番号を代入しておいてはいかがですか?



for n as integer = 1 to 10
  label01(n) = new Label()
  label01(n).Tag = n
  label01(n).Text = "label01-" & n
  Label01(n).Location = new Point( 0, n * 32 )
  Controls.Add( label01(n) )
  AddHandler Label01(n).Click AddressOf Label01_Click
next
といった具合に登録しておいて

Sub Label01_Click( ... )
  dim n as integer
  dim lbl as Label = CType(sender, Label)
  n = lbl.Tag
  label02(n).Text = "Ok"
End Sub
といた具合です
    • good
    • 0
この回答へのお礼

ありがとうございました。
教えて頂いたとおりに設定しましたら動作しました。
助かりました。

お礼日時:2008/07/25 08:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!