지금은 값을 다른 폼으로 보내고 레이블에 결과를 표시하는 단추가 있습니다. 문제는 코드화해야하는 w 개의 레이블이있는 20 개의 버튼이 있고 여러 개의 버튼에서 값을 전달할 수있는 방법이 무엇인지 잘 모르겠습니다. 전달되는 양식의 사례 진술일까요? 나는 VB.Net에 대한 새로운 사용자이고 내 길을 찾고 있으므로 도움을 주시면 감사하겠습니다. 첫 번째 버튼 'A'에 대한 코드 샘플을 포함 시켰습니다. 감사합니다vb2010 여러 단추에서 이름 값 가져 오기
frmMain 수
Private Sub btnA_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles btnA.MouseDown
If (e.Button = MouseButtons.Right) Then
'Dim curButton As Button = DirectCast(sender, Button)
'frmRacks.buttonName = curButton.Name 'Dynamic alternative to frmRacks.buttonName = "A"
frmRacks.buttonName = "A"
frmRacks.Show()
ElseIf (e.Button = MouseButtons.Left) Then
MessageBox.Show("To be coded")
End If
End Sub
frmRacks
Public Class frmRacks
Public buttonName As String
Private Sub racksfrm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
lblRacks.Text = buttonName
End Sub
편집 : 당신이 잘하면 당신이 명확하게 아이디어를 얻을하는 데 도움이 될 것입니다 샘플 코드가 여기에
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim button1 As Button = New Button
Dim button2 As Button = New Button
Dim button3 As Button = New Button
With button1
.Name = "button1"
.Left = 0
AddHandler .MouseDown, AddressOf btn_MouseDown
'Add remaining properties for button1
End With
With button2
.Name = "button2"
.Left = 100
AddHandler .MouseDown, AddressOf btn_MouseDown
'Add remaining properties for button2
End With
With button3
.Name = "button3"
.Left = 200
AddHandler .MouseDown, AddressOf btn_MouseDown
'Add remaining properties for button3
End With
Me.Controls.Add(button1)
Me.Controls.Add(button2)
Me.Controls.Add(button3)
End Sub
Private Sub btn_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Dim curButton As Button = DirectCast(sender, Button)
Dim curButtonName As String = curButton.Name 'This string would change on account of the button you have clicked
Form2.buttonName = curButtonName
Form2.Show()
'MessageBox.Show("You clicked the button called " & curButtonName.ToUpper)
End Sub
End Class
Public Class Form2
Public buttonName As String
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
lblRacks.Text = buttonName
End Sub
End Class
당신은이 질문을하기 전에 물어 보았습니다. 거기에 적어도 하나의 대답이 있음을 당신이 원하는대로 수행 할 수있게 해주는 코드를 제공합니다. 아마도 오해가 있습니다 (당신이 정확히 무엇을 원하는지 이해하지 못하거나 답을 정확히 이해하지 못했을 것입니다). 이 모든 것을 명확히하려고 노력하겠습니다. btnA_MouseDown은 무엇입니까? 모든 버튼과 연관된 click 이벤트 메소드? – varocarbas
@varocarbas 어디에서 여러 개의 버튼에 관한 질문을했을까요? 순간 버튼 'A'에서만 버튼으로 연결된 클릭 이벤트입니다. 감사합니다 – user1532468
아마도 이것은 오해입니다. 마지막 질문/대답은 버튼 하나와 1000 개의 버튼에 대해 작동합니다. 원하는만큼 버튼에 btnA_MouseDown을 연결하고 해당 이름을 검색 할 수 있습니다. (왜 지금 frmRacks.buttonName = "A"라고 하드 코딩하는지 모르겠 음) – varocarbas