【问题标题】:Start a process in a VB form without clicking a button无需单击按钮即可在 VB 表单中启动进程
【发布时间】:2014-04-11 07:06:36
【问题描述】:

这是我的情况。

我有一个来自 VB.NET 应用程序的窗口。在我的第一个表单中,有两个复选框。如果选中第一个,则转到 Form2,如果仅选中第二个,则转到 Form3。如果两者都被选中,那么我想先去 Form2,当这个过程完成后去 Form3。一切都很好,直到这一点。 但是,我希望 Form3 开始执行其代码(在后台工作人员内部)而不按任何按钮(仅选中第二个复选框时的情况)。这可能吗?

提前致谢!

额外信息....

为了在表单之间导航,我使用了显示/隐藏/关闭方案。例如:

If CheckBoxTrain.CheckState = CheckState.Checked Then Me.Hide() Form2.Show() ElseIf CheckBoxTrain.CheckState = CheckState.Unchecked And CheckBoxEvaluate.CheckState = CheckState.Checked Then Me.Hide() Form3.Show()

在 form2 的代码末尾,我检查第二个复选框是否也被选中:

If Form1.CheckBoxTrain.CheckState = CheckState.Checked And Form1.CheckBoxEvaluate.CheckState = CheckState.Checked Then
            Form3.Show()
            Me.Hide()
        End If

然后在 Form3 中有一个按钮,按下它后我就有了所有代码:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    For i = 1 To n_monte

        Button1.Enabled = False
        Button2.Enabled = True

        BackgroundWorker1.WorkerSupportsCancellation = True
        BackgroundWorker1.WorkerReportsProgress = True

        BackgroundWorker1.RunWorkerAsync()

    Next
End Sub

我想要的是最后一段代码是在不按任何按钮的情况下开始运行(仅适用于同时选中两个复选框的情况)

【问题讨论】:

  • 请提供更多细节。例如,请提供您使用 BackgroundWorker 的代码。还请详细说明“...被检查到 Form3”是什么意思 - 你还没有告诉我们你是如何在表单之间导航的。
  • 信息不足..提供一些代码..
  • 我会说根据你所说的,这是可能的,不过,一些代码会更有用。
  • 在您的 form2 中,只需在 form2 代码中引用您要启动的进程即可。应该工作。
  • 我编辑了我的帖子,包含一些代码.....再次感谢!

标签: vb.net winforms visual-studio-2012


【解决方案1】:

Form3 中声明一个Boolean 属性,并根据是否同时检查CheckBoxesForm1 中设置该属性。在Form3Load 事件处理程序中,启动BackgroundWorker 或者不要基于该属性的值。

【讨论】:

  • 非常感谢....现在看起来很基本,但由于某种原因我没有想到
猜你喜欢
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 2017-09-29
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
  • 2020-12-31
相关资源
最近更新 更多