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