2013-10-03 3 views
0

Как сделать событие в одной форме в другом. У меня есть одна форма (New Well form) с 2 текстовыми полями, выпадающим списком и кнопкой. Это вызывается всякий раз, когда требуется новый индикатор выполнения в основной форме (Stage Tally Main). Всякий раз, когда я заполняю информацию в New well и нажимаю кнопку, я хочу, чтобы Stage Tally Main добавлял индикатор выполнения с информацией из текстовых полей и combobox. Как я могу сделать кнопку в форме New Well, добавьте индикатор прогресса на Stage Tally Main?Кнопка в одной форме выполняет действие в другой форме

ответ

0

его действительно очень легко. Если у вас есть серия кода, которую вы хотели бы выполнить на форме 2, вы можете просто поместить: Public Sub some_code() в форму 1. и в форме 2, при нажатии кнопки или загрузке формы, или что бы вы ни говорили .some_code() и вызовите серию кода. Ill создайте лучший пример здесь:

Обратите внимание, что только в нижеследующем коде новая форма скважины, загружаемая элементом меню, и это вниз, является общедоступным подпунктом go_Progess_bar(). код описывает создание бара прогресса в определенной позиции, бла-бла-бла. В основном все код, который я хочу выполнять на этой форме в другой форме я могу инициализировать с помощью простого: Public Sub некоторое_имя()

Public Class Form1

Private Sub NewWellToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NewWellToolStripMenuItem.Click 

    Dim NewWell As New NewWellForm() 
    NewWell.ShowDialog() 

End Sub 

Public Sub go_Progress_Bar() 
    Dim ctrl As Control 
    Dim i As Integer = 0 
    For Each ctrl In Controls 
     If TypeOf ctrl Is ProgressBar Then 
      i = i + 1 
     End If 
    Next 

    Dim NumProgressBar As String = Convert.ToString(i) 

    Dim pBar As New ProgressBar() 

    pBar.Location = New System.Drawing.Point(20, 50 * (2 * i + 1)) 

    pBar.Name = "progressBar" + NumProgressBar 

    pBar.Width = 1200 

    pBar.Height = 30 

    Dim CrewAndWell As New Label 

    CrewAndWell.Name = CrewSelection + WellSelection 

    CrewAndWell.Location = New System.Drawing.Point(20, 50 * (2 * i + 1) - 20) 

    CrewAndWell.Width = 100 

    CrewAndWell.Height = 20 

    CrewAndWell.Text = CrewSelection + ": " + WellSelection 

    Controls.Add(CrewAndWell) 

    Controls.Add(pBar) 
End Sub 

Новая форма также код находится ниже, который представляет Form2 , Игнорируйте все остальное, кроме события нажатия кнопки. Когда кнопка нажата, go_Progress_Bar вызывается form1.go_Progress_Bar(), и код выполняется на form1. Так просто пещерный человек мог это сделать.

Открытый класс NewWellForm

Private Sub NewWellForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    ComboBox1.Items.AddRange(CrewList.ToArray()) 
End Sub 
Private Sub AddWell_Click(sender As Object, e As EventArgs) Handles AddWell.Click 
    CrewSelection = ComboBox1.SelectedItem 
    WellSelection = WellNameText.Text 
    Form1.go_Progress_Bar() 
    Close() 
End Sub 

End Class

Смежные вопросы