为什么这个Powershell代码片段不起作用?



这个特定的powershell代码对我不起作用,我想知道我在这里做错了什么(我正在学习Powershell的过程中 - 我对它很陌生(

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$main_form = New-Object System.Windows.Forms.Form
$main_form.Text = "Testing"
$main_form.Width = 500
$main_form.height = 300
$main_form.FormBorderStyle = "FixedDialog"
$main_form.AutoSize = $true
$main_form.MaximizeBox = $false
$main_form.MinimizeBox = $false
#
$SetCheckBox = New-Object System.Windows.Forms.Checkbox
$SetCheckBox.Location = New-Object System.Drawing.Point(10,10)
$SetCheckBox.Size = New-Object System.Drawing.Size(60,20)
$SetCheckBox.Text = "Set"
$main_form.Controls.Add($SetCheckBox)
if($SetCheckBox.Checked -eq $true){
$SetButton = New-Object System.Windows.Forms.Button
$SetButton.Location = New-Object System.Drawing.Point(280,200)
$SetButton.Size = New-Object System.Drawing.Size(100,20)
$SetButton.Text = "Nothing Selected"
$SetButton.AutoSize = $true
$main_form.Controls.Add($SetButton)
}else{
}
$RefreshButton = New-Object System.Windows.Forms.Button
$RefreshButton.Location = New-Object System.Drawing.Point(400,285)
$RefreshButton.Size = New-Object System.Drawing.Size(100,20)
$RefreshButton.Text = "Refresh"
$RefreshButton.AutoSize = $true
$main_form.Controls.Add($RefreshButton)
$RefreshButton.Add_Click({
$main_form.Refresh()
})
#
$main_form.Topmost = $true
$main_form.ShowDialog()

我希望它在"$SetCheckBox.Checked"等于$true"时向我的表单添加一个按钮,但没有任何反应。没有错误代码或任何东西。 也许这不是Powershell的工作方式?

问题是你已经设置好了一切,只是没有在正确的地方。您需要在按钮按下中包含 if 语句才能对其进行操作。我不需要放Refresh(),但我只在ISE中测试。这目前对我有用:

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$main_form = New-Object System.Windows.Forms.Form
$main_form.Text = "Testing"
$main_form.Width = 500
$main_form.height = 300
$main_form.FormBorderStyle = "FixedDialog"
$main_form.AutoSize = $true
$main_form.MaximizeBox = $false
$main_form.MinimizeBox = $false
$SetCheckBox = New-Object System.Windows.Forms.Checkbox
$SetCheckBox.Location = New-Object System.Drawing.Point(10,10)
$SetCheckBox.Size = New-Object System.Drawing.Size(60,20)
$SetCheckBox.Text = "Set"
$main_form.Controls.Add($SetCheckBox)
$RefreshButton = New-Object System.Windows.Forms.Button
$RefreshButton.Location = New-Object System.Drawing.Point(400,285)
$RefreshButton.Size = New-Object System.Drawing.Size(100,20)
$RefreshButton.Text = "Refresh"
$RefreshButton.AutoSize = $true
$main_form.Controls.Add($RefreshButton)
$RefreshButton.Add_Click({
if($SetCheckBox.Checked -eq $true){
Write-Host "testing"
$SetButton = New-Object System.Windows.Forms.Button
$SetButton.Location = New-Object System.Drawing.Point(280,200)
$SetButton.Size = New-Object System.Drawing.Size(100,20)
$SetButton.Text = "Nothing Selected"
$SetButton.AutoSize = $true
$main_form.Controls.Add($SetButton)
}else{
Write-Host "testing2"
}
})
$main_form.Topmost = $true
$main_form.ShowDialog()

最新更新