0

如何使一种形式的事件以另一种形式执行。我有一个带有 2 个文本框、一个组合框和一个按钮的表单(New Well 表单)。每当主窗体(Stage Tally Main)上需要新的进度条时,都会调用此方法。每当我在 New 井上填写信息并点击按钮时,我希望 Stage tally Main 添加一个进度条,其中包含来自文本框和组合框的信息。如何在 New Well 表单上制作一个按钮,在 Stage Tally Main 上添加一个进度条?

4

1 回答 1

0

它实际上真的很容易。如果您想在表单 2 上执行一系列代码,那么您只需将: Public Sub some_code() 放在表单 1 上。在表单 2 中,在按钮单击、表单加载或任何您可以说的表单下.some_code() 并调用一系列代码。生病在这里创建一个更好的例子:

仅在下面的代码中注意由菜单项加载的新井窗体,向下是一个名为 go_Progess_bar() 的公共子窗体。该代码描述了在某个位置创建进度条,等等等等。基本上,我想以另一种形式在此表单上执行的所有代码都可以用一个简单的方式初始化: public sub some_name()

公开课形式1

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。忽略除按钮单击事件之外的所有其他内容。当点击按钮时,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

结束类

于 2013-10-05T02:51:13.623 回答