【问题标题】:PowerShell Form, how to refresh Label?PowerShell Form,如何刷新标签?
【发布时间】:2019-12-27 05:50:31
【问题描述】:

我正在玩弄表单,并且被标签中的刷新信息卡住了。

尝试刷新标签或表单本身都不起作用。 我写的测试代码:

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()

运行代码时,会打开一个窗口,显示计数器 1。按“下一步”按钮,我希望计数器更改为数字 2。

出于测试目的,我编写测试 1 时每次都添加“+1”,当按下 Next 并且接缝开始工作时。

我做错了什么?

非常感谢您的帮助,

迈克

【问题讨论】:

    标签: forms powershell label refresh


    【解决方案1】:

    不确定为什么你在那里有一个测试功能,但这将完成你所追求的。

    您需要将$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()
    

    【讨论】:

    • 哇,德鲁,非常感谢,这就是解决方案。是的,对不起,正在玩,尝试了这么多,也有它的功能。忘记拿出来了。现在它运行完美,再次感谢
    猜你喜欢
    • 1970-01-01
    • 2013-03-27
    • 2021-01-28
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多