2012-06-11 2 views
0

다음 코드를 사용하여 단추를 동적으로 생성했습니다. 그런 방식으로 코딩하는 법을 알고 싶습니다. 하나의 버튼을 클릭하면 같은 모양의 다른 버튼에 약간의 변경이 이루어져야합니다. 모든 버튼이 루프에서 생성되므로 코드의 다른 곳에서 버튼 하나를 호출하는 방법을 모르겠습니다.vb.net에서 동적으로 생성 된 각 단추의 속성에 액세스하고 있습니까?

Private Sub random2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)   Handles MyBase.Load 
    Dim i As Integer 
    For i = 1 To 16 
     Dim btn As New Button 
     AddHandler btn.Click, AddressOf ClickMe 
     btn.Width = 23 
     btn.Height = 23 
     btn.Text = "" 
     btn.Tag = i 
     btn.Name = i 
     btn.Name = "Button" & i 
     flp.Controls.Add(btn) 'flp stand for flow layout panel 

    Next 
End Sub 
Private Sub ClickMe(ByVal Sender As Object, ByVal e As EventArgs) 
    Dim btn As Button 
    btn = CType(Sender, Button) 
    dim str as string = btn.tag 
    MsgBox(str) 
     End Sub 
    End Class 

답변

2

모든 동적 버튼을 FlowLayoutPanel 컨트롤 컬렉션에 추가했습니다.
는이

Dim btn As Button = TryCast(flp.Controls("name"), Button) 
if btn IsNot Nothing then 
    btn.Caption = "New Text" 
    .... 
End If 

같은 구문이 그들을 찾을 수 또는 특정 인덱스

Dim btn As Button = TryCast(flp.Controls(index), Button) 
+0

에서 버튼을 원한다면 나는 그것을 사용할 수 없습니다입니다. – user1447588

+0

당신은 당신의 C# 모자 반을 가지고 있습니다. VB.Net은 대괄호가 아닌 괄호를 사용합니다 :'flp.Controls ("name")'. – LarsTech

+0

@LarsTech 고마워요. 내 머리에 너무 많은 모자가 있습니다. – Steve

관련 문제