如何在脚本中同时运行winforms窗体窗口



我正试图在运行主脚本的同时运行一个System.windows.form对象。例如,我想运行一个PowerShell脚本,它有一个循环并且永远不会停止。我希望能够使用WPF Form对象上的按钮来终止执行。

我尝试过方法form.show(),但它不能给我控制权。

clear host
Function hey(){
    # code to exit, or do what I want it to do.
}
Add-Type -AssemblyName System.Windows.Forms
$form = New-Object Windows.Forms.Form
$form.Size = New-Object Drawing.Size @(1024,768)
$form.StartPosition = "CenterScreen"
$btn = New-Object System.Windows.Forms.Button 
$btn.Location = New-Object System.Drawing.Point(15, 15)
$btn.add_click({$(hey)})
$btn.Text = "Click here"
$form.Controls.Add($btn)

while($true){
    write-host "int = $int."
    start-sleep 3
    $int = $int + 1
    $drc = $form.ShowDialog()
}

提前非常感谢!

如果你只想让"点击此处"按钮关闭表单并退出while循环,你可以这样做:

Function hey(){
    $form.Close()
}
Add-Type -AssemblyName System.Windows.Forms
$form = New-Object Windows.Forms.Form
$form.Size = New-Object Drawing.Size @(1024,768)
$form.StartPosition = "CenterScreen"
$btn = New-Object System.Windows.Forms.Button 
$btn.Location = New-Object System.Drawing.Point(15, 15)
$btn.add_click({$(hey)})
$btn.Text = "Click here"
$form.Controls.Add($btn)
while ($true) {
    write-host "int = $int."
    start-sleep 3
    $int = $int + 1
    $drc = $form.ShowDialog()
    if ($drc = "Cancel") { break }
}

最新更新