1

我正在尝试创建一个form使用 VB.Net 来检查 IExplorer 进程是否正在运行,然后显示一个RichTextBox(建议用户关闭 IE)是进程 = 1,如果进程 = 0 ,则Button继续下一个。form

这是容易的部分,困难的部分是如果加载表单时进程 = 0,然后用户打开 IE,我想删除按钮并显示RichTextBox(建议用户关闭 IE),如果他们再次显示关闭 IE 按钮重新出现。

我在with语句button中显示取决于 IE 是否打开,但如果 IE 关闭或打开,我无法让它们交换,任何帮助将不胜感激。RichTextBoxform_loadIf

这是我在 RTB 和 Button 的 Form_load 中的代码

aProc = Process.GetProcessesByName("iexplore")

If aProc.Length = 0 Then
    Dim b1 As New Button
    b1.Location = New System.Drawing.Point(274, 244)
    b1.Name = "btnOK"
    b1.Size = New System.Drawing.Size(75, 29)
    b1.TabIndex = 5
    b1.Text = "OK"
    b1.UseVisualStyleBackColor = False
    Me.Controls.Add(b1)
    AddHandler b1.Click, AddressOf btn_OK

Else
    Dim t1 As New RichTextBox
    t1.Location = New System.Drawing.Point(170, 233)
    t1.Name = "rtbMessage2"
    t1.ReadOnly = True
    t1.Font = New System.Drawing.Font("Arial", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
    t1.Size = New System.Drawing.Size(293, 40)
    t1.TabIndex = 5
    t1.Text = ("Internet Explorer is Running - Please Close Internet Explorer to Continue")
    Me.Controls.Add(t1)
    AddHandler t1.Click, AddressOf btn_OK
End If
4

1 回答 1

0

我会做出两个改变:

  • 添加一个不断调用逻辑的计时器(显示/隐藏 Button/RichTextBox)
  • 使 Button 和 RichTextBox 始终存在,但最初是不可见的。

为此,我会(在加载时)使用.Visible = false. 然后创建一个每 500 毫秒 (+/-) 运行一次的计时器。该计时器将调用包含上述逻辑的函数。但是,不是创建控件(使用该逻辑),而是引用它们并设置它们的可见性。

本质上,创建一次控件,多次运行逻辑。

于 2013-06-18T12:18:58.587 回答