And*_*ehm 4 powershell winforms
当我在PowerShell中创建表单(窗口)时,我通常可以使用.ShowDialog()显示表单:
$form = New-Object System.Windows.Forms.Form
$form.ShowDialog()
Run Code Online (Sandbox Code Playgroud)
.VhowDialog()之前和之后将.Visible设置为False.
但当我做.Show()屏幕上没有显示任何内容:
$form.Show()
Run Code Online (Sandbox Code Playgroud)
而.Visible现在设置为True(大概是因为.Show()使形式正式可见.)
当我现在再次尝试.ShowDialog()表单时,我收到以下错误消息:
"已经可见的表单不能显示为模式对话框.在调用showDialog之前,将表单的visible属性设置为false."
但是当我再次按照说明操作.ShowDialog()时
$form.Visible=0
$form.ShowDialog()
Run Code Online (Sandbox Code Playgroud)
结果是屏幕上没有显示任何内容,PowerShell挂起并且无法恢复(ctrl-c似乎不起作用).我认为这是因为表单在某个地方显示模式,我无法看到它(或Tab键到它).但为什么?
表格的坐标没有改变.那么表单如何确定它何时在物理上可见以及何时不可见?
避免使用PowerShell中的Show(),因为它需要一个消息泵,这不是PowerShell控制台在创建表单的线程上提供的.ShowDialog()有效,因为操作系统在此模态调用期间执行消息处理.创建表单并调用ShowDialog()对我来说可靠.