PowerShell Form,如何刷新Label?
PowerShell Form, how to refresh Label?
我正在玩弄表格,但在标签中刷新信息时遇到了困难。
尝试刷新 Label 或 The Form 本身无效。
我写的测试代码:
CLS
Add-Type -assembly System.Windows.Forms
$Counter = 1
$Main_Form = New-Object System.Windows.Forms.Form
$Main_Form.Icon = $objIcon
$Main_Form.Text ='Test Test Test'
$Main_Form.Size = '1000,400'
$Main_Form.StartPosition = "CenterScreen"
$Main_Form.AutoSize = $true
$Main_Form.BringToFront()
Test
Function Test {
$Label = New-Object System.Windows.Forms.label
$Label.Location = '10,20'
$Label.Size = '200,60'
$Label.Font = New-Object System.Drawing.Font("Times New Roman",16,[System.Drawing.FontStyle]::Bold)
$Label.BackColor = "Transparent"
$Label.ForeColor = "Blue"
$Label.Text = 'Counter '+$Counter
$Main_Form.Controls.Add($Label)
$Button = New-Object System.Windows.Forms.Button
$Button.Location = '50,200'
$Button.Size = '200,75'
$Button.Font = New-Object System.Drawing.Font("Arial",16,[System.Drawing.FontStyle]::Bold)
$Button.Text = 'Next'
$Main_form.Controls.Add($Button)
$ButtonClickEvent = ({Write-Host 'Test '$Counter;$Global:Counter++})
$Button.Add_Click($ButtonClickEvent)
}
$Main_Form.ShowDialog()
当 运行 代码时,window 打开并显示计数器 1。按下 "Next" 按钮,我希望计数器更改为数字 2。
出于测试目的,我编写了测试 1,每次都添加“+1”,当按下 Next 时接缝开始工作。
我做错了什么?
非常感谢您的帮助,
麦克
不确定你为什么在那里有一个测试函数,但这将完成你所追求的。
您需要将 $Label.Text
添加到 $ButtonClickEvent
。
Add-Type -assembly System.Windows.Forms
$Script:Counter = 1
$Main_Form = New-Object System.Windows.Forms.Form
$Main_Form.Icon = $objIcon
$Main_Form.Text ='Test Test Test'
$Main_Form.Size = '1000,400'
$Main_Form.StartPosition = "CenterScreen"
$Main_Form.AutoSize = $true
$Main_Form.BringToFront()
$Label = New-Object System.Windows.Forms.label
$Label.Location = '10,20'
$Label.Size = '200,60'
$Label.Font = New-Object System.Drawing.Font("Times New Roman",16,[System.Drawing.FontStyle]::Bold)
$Label.BackColor = "Transparent"
$Label.ForeColor = "Blue"
$Label.Text = 'Counter '+$Script:Counter
$Main_Form.Controls.Add($Label)
$Button = New-Object System.Windows.Forms.Button
$Button.Location = '50,200'
$Button.Size = '200,75'
$Button.Font = New-Object System.Drawing.Font("Arial",16,[System.Drawing.FontStyle]::Bold)
$Button.Text = 'Next'
$Main_form.Controls.Add($Button)
$ButtonClickEvent = {
Write-Host 'Test '$Script:Counter
$Script:Counter++
$Label.Text = "Counter $Script:Counter"
}
$Button.Add_Click($ButtonClickEvent)
$Main_Form.ShowDialog()
我正在玩弄表格,但在标签中刷新信息时遇到了困难。
尝试刷新 Label 或 The Form 本身无效。 我写的测试代码:
CLS
Add-Type -assembly System.Windows.Forms
$Counter = 1
$Main_Form = New-Object System.Windows.Forms.Form
$Main_Form.Icon = $objIcon
$Main_Form.Text ='Test Test Test'
$Main_Form.Size = '1000,400'
$Main_Form.StartPosition = "CenterScreen"
$Main_Form.AutoSize = $true
$Main_Form.BringToFront()
Test
Function Test {
$Label = New-Object System.Windows.Forms.label
$Label.Location = '10,20'
$Label.Size = '200,60'
$Label.Font = New-Object System.Drawing.Font("Times New Roman",16,[System.Drawing.FontStyle]::Bold)
$Label.BackColor = "Transparent"
$Label.ForeColor = "Blue"
$Label.Text = 'Counter '+$Counter
$Main_Form.Controls.Add($Label)
$Button = New-Object System.Windows.Forms.Button
$Button.Location = '50,200'
$Button.Size = '200,75'
$Button.Font = New-Object System.Drawing.Font("Arial",16,[System.Drawing.FontStyle]::Bold)
$Button.Text = 'Next'
$Main_form.Controls.Add($Button)
$ButtonClickEvent = ({Write-Host 'Test '$Counter;$Global:Counter++})
$Button.Add_Click($ButtonClickEvent)
}
$Main_Form.ShowDialog()
当 运行 代码时,window 打开并显示计数器 1。按下 "Next" 按钮,我希望计数器更改为数字 2。
出于测试目的,我编写了测试 1,每次都添加“+1”,当按下 Next 时接缝开始工作。
我做错了什么?
非常感谢您的帮助,
麦克
不确定你为什么在那里有一个测试函数,但这将完成你所追求的。
您需要将 $Label.Text
添加到 $ButtonClickEvent
。
Add-Type -assembly System.Windows.Forms
$Script:Counter = 1
$Main_Form = New-Object System.Windows.Forms.Form
$Main_Form.Icon = $objIcon
$Main_Form.Text ='Test Test Test'
$Main_Form.Size = '1000,400'
$Main_Form.StartPosition = "CenterScreen"
$Main_Form.AutoSize = $true
$Main_Form.BringToFront()
$Label = New-Object System.Windows.Forms.label
$Label.Location = '10,20'
$Label.Size = '200,60'
$Label.Font = New-Object System.Drawing.Font("Times New Roman",16,[System.Drawing.FontStyle]::Bold)
$Label.BackColor = "Transparent"
$Label.ForeColor = "Blue"
$Label.Text = 'Counter '+$Script:Counter
$Main_Form.Controls.Add($Label)
$Button = New-Object System.Windows.Forms.Button
$Button.Location = '50,200'
$Button.Size = '200,75'
$Button.Font = New-Object System.Drawing.Font("Arial",16,[System.Drawing.FontStyle]::Bold)
$Button.Text = 'Next'
$Main_form.Controls.Add($Button)
$ButtonClickEvent = {
Write-Host 'Test '$Script:Counter
$Script:Counter++
$Label.Text = "Counter $Script:Counter"
}
$Button.Add_Click($ButtonClickEvent)
$Main_Form.ShowDialog()