【问题标题】:PowerShell Form Resize EventPowerShell 表单调整大小事件
【发布时间】:2017-09-24 02:17:02
【问题描述】:

当表单调整大小时,我需要动态调整表单对象的大小。用户将拖放表单的边缘以调整其大小。我一直在寻找正确的语法来管理 PowerShell 中的表单调整大小事件,但没有成功。

有人能告诉我为什么resizeEnd 在表单上不起作用吗?另外,处理调整大小事件的正确语法是什么?

这是我正在尝试的,但我不断收到错误:

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

$form = New-Object System.Windows.Forms.Form
$form.Size = New-Object System.Drawing.Size(1066,518)
$form.KeyPreview = $true
$form.StartPosition = "centerscreen"
$form.BackColor = "MidnightBlue"

$form.Add_KeyDown({
    if($_.KeyCode -eq "Escape") {
        $form.Close()
    }
})

$form.Text = "Dialog Box 5.1" 
$form.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($PSHOME + "\powershell_ise.exe")
$form.MinimumSize = New-Object System.Drawing.Size(1066,525)

#$form.SizeChanged({ $errorBox1.AppendText("resize") })
#$form.Resize({ Write-Host "resize" })
#$form.ClientSizeChanged({ Write-Host "size" })
$form.ResizeEnd({ Write-Host "resize" })
#$form.SizeChanged({ Write-Host "size" })
#$form.ControlAdded({ Write-Host "event" })
#$form.AutoSizeMode = New-Object System.Windows.Forms.AutoSizeMode
#$form.AutoSizeMode = "GrowAndShrink"
#$form.OnDragDrop({ Write-Host "drop" })

$form.ShowDialog() | Out-Null

基本上,我想说的是,“如果表单被调整大小写主机,则表单被调整大小”。

【问题讨论】:

  • 这是一个link,用于 (IMO) 使用 PowerShell 创建更好的 GUI。
  • 感谢您的链接,但除了 GUI 中的基本课程之外,我根本看不出它与这个问题有什么关系。我浏览了页面上有关 .Net 的子链接,它没有谈到调整大小事件处理程序。

标签: forms winforms powershell resize


【解决方案1】:

例子:

$form.Add_Resize({
    "form resized"
})

$resizeHandler = { "form resized" }

$form.Add_Resize( $resizeHandler )

Some documentation

试试这个看看System.Windows.Forms.Form公开的一长串方法:

$form = New-Object System.Windows.Forms.Form

$form | Get-Member -Force

【讨论】:

  • 这正是我所需要的。我喜欢额外的帮助,向我们展示在哪里进行额外的开发工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-13
  • 2019-02-01
  • 2022-10-01
  • 2018-09-05
  • 1970-01-01
相关资源
最近更新 更多