gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 08:04:09 24 4
gpt4 key购买 nike

当我在 PowerShell 中创建一个表单(窗口)时,我通常可以使用 .ShowDialog() 来显示该表单:

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

.Visible 在 .ShowDialog() 之前和之后都设置为 False。

但是当我执行 .Show() 时,屏幕上没有显示任何内容:
$form.Show()

并且 .Visible 现在设置为 True(大概是因为 .Show() 使表单正式可见。)

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

“已经可见的表单无法显示为模式对话框。在调用 showDialog 之前将表单的可见属性设置为 false。”

但是当我再次按照 .ShowDialog() 的说明进行操作时
$form.Visible=0
$form.ShowDialog()

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

表格的坐标没有改变。那么表单如何决定何时物理可见,何时不可见?

最佳答案

避免使用 PowerShell 中的 Show(),因为它需要一个消息泵,而 PowerShell 控制台在创建表单的线程上没有提供这种信息。 ShowDialog() 之所以起作用,是因为操作系统在此模式调用期间执行消息泵送。创建表单并调用 ShowDialog() 对我来说很可靠。

关于winforms - 为什么 PowerShell 显示的表单有时不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2192558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com