微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

winforms – 为什么PowerShell显示的表单有时不显示?

当我在Power Shell中创建表单(窗口)时,我通常可以使用.ShowDialog()显示表单:

$form = New-Object System.Windows.Forms.Form
$form.ShowDialog()

.VhowDialog()之前和之后将.Visible设置为False.

但当我做.Show()屏幕上没有显示任何内容

$form.Show()

而.Visible现在设置为True(大概是因为.Show()使形式正式可见.)

当我现在再次尝试.ShowDialog()表单时,我收到以下错误消息:

“已经可见的表单不能显示为模式对话框.在调用showDialog之前,将表单的visible属性设置为false.”

但是当我再次按照说明操作.ShowDialog()时

$form.Visible=0
$form.ShowDialog()

结果是屏幕上没有显示任何内容,PowerShell挂起并且无法恢复(ctrl-c似乎不起作用).我认为这是因为表单在某个地方显示模式,我无法看到它(或Tab键到它).但为什么?

表格的坐标没有改变.那么表单如何确定它何时在物理上可见以及何时不可见?

解决方法

避免使用PowerShell中的Show(),因为它需要一个消息泵,这不是PowerShell控制台在创建表单的线程上提供的. ShowDialog()有效,因为操作系统在此模态调用期间执行消息处理.创建表单并调用ShowDialog()对我来说可靠.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐