Получить данные о нажатой кнопке

wladimirChap

Здравствуйте. Имеются 2 формы. На первой форме имеются 18 кнопок. При нажатии на одну из кнопок открывается вторая форма. Вопрос, как при открытии 2 формы определить какая из кнопок была нажата, и выполнить соответствующее действие.
5 ответов

wladimirChap

wladimirChap, Самое простое, в конструкторе вызываемой формы, передавать индекс кнопки или имя


wladimirChap

edward_freedom, Можете пример показать?


wladimirChap

wladimirChap, Конструктор второй формы
Public Sub New(ByVal param As Object)
 
        ' Этот вызов является обязательным для конструктора.
        InitializeComponent()
        MessageBox.Show(DirectCast(param, Button).Name)
        ' Добавьте все инициализирующие действия после вызова InitializeComponent().
 
    End Sub
В кнопки
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim frm2 As New Form2(sender)
        frm2.Show()
    End Sub
 
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim frm2 As New Form2(sender)
        frm2.Show()
    End Sub


wladimirChap

Это понятно. Мне нужно во второй форме определить какая из 18 кнопок была нажата на первой форме, к примеру:
if form1.button 2 click' к примеру, если была нажата кнопка 2 на форме 1
then messagebox.show......' то вывести сообщение 
else if form1.button 3 click
и так далее


wladimirChap

Форма 1
Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click, Button3.Click ', ... и т.д. до Button18.Click
     Form2.Start(sender)
End Sub
Форма 2
Private NameButton as String
 
Public Sub Start(sender As Botton)
    NameButton=sender.Name
    Me.Show()
End Sub
 
Private Sub Form2_Shown(sender As System.Object, e As System.EventArgs) Handles MyBase.Shown
    MessageBox.Show("Нажата кнопка " & NameButton
End Sub