2013-10-03 79 views
0

如何使一种形式的事件在另一种形式中执行。我有一个窗体(新井形式)与2个文本框,一个组合框和一个按钮。只要主窗体上需要新的进度条(Stage Tally Main),就会调用它。每当我在新井上填写信息并按下按钮时,我希望阶段计数主要使用文本框和组合框中的信息添加进度栏。如何在New Well窗体上添加按钮在Stage Tally Main上添加进度条?单击一种形式的按钮以另一种形式执行动作

回答

0

其实很简单。如果您想要在表单2上执行一系列代码,那么您可以在表单1上放置:Public Sub some_code();在表单2中,在按钮点击或表单加载或任何可以说的形式.some_code()并调用一系列代码。我在这里创建一个更好的示例:

请注意,只有在下面的代码中,菜单项加载的新井格式和下面的公共子集叫做go_Progess_bar()。代码描述了在某个位置创建一个进度条,等等等等等等。公用分类some_name()

公共类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 

新井形式的代码如下,它代表窗口2:基本上所有我想以另一种形式这种形式执行的代码,我可以用一个简单的初始化。忽略除按钮单击事件以外的所有其他内容。单击按钮时,由form1.go_Progress_Bar()调用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 

末级

相关问题