bugfix> winforms > 投稿

windows.formでテキストラベルを点滅させる方法を探します。 これは私のスクリプトの一部です:

$Form                              = New-Object system.Windows.Forms.Form
$Form.StartPosition                = [System.Windows.Forms.FormStartPosition]::CenterScreen
$Form.ClientSize                   = '600,800'
$Form.text                         = "USMT - Sauvegarde des profils"
$Label1                            = New-Object system.Windows.Forms.Label
$Label1.text                       = "1. Chemin vers scanstate.exe :"
$Label1.AutoSize                   = $true
$Label1.width                      = 25
$Label1.height                     = 10
$Label1.location                   = New-Object System.Drawing.Point(20,10)
$Label1.Font                       = 'Microsoft Sans Serif,10'

ここでは、$Label1.textを点滅させるソリューションを検索します

手伝ってくれてありがとう !

回答 2 件
  • タイマーを作成し、その Tick にイベントハンドラーを追加します  イベントとそこからラベルの可視性を切り替えます。 GUIの作成とイベントへの反応は、PowerShellでは特に良いことではありませんが、実行できます。

  • System.Windows.Forms.Timer を作成できます  オブジェクトとその Interval を設定  適切な値(ミリ秒)に、そしてその Tick を処理することにより  イベント、ラベルを点滅させるために必要なことを何でも行います。たとえば、ラベルの可視性を切り替えます。フォームを読み込むときにタイマーを開始する必要があります。

    Add-Type -AssemblyName System.Windows.Forms
    $form = New-Object System.Windows.Forms.Form
    $label = New-Object System.Windows.Forms.Label
    $label.Text = "This is my label."
    $label.AutoSize = $true
    $form.Controls.Add($label)
    $timer = New-Object System.Windows.Forms.Timer
    $timer.Interval = 250
    $timer.Add_Tick({$label.Visible = -not($label.Visible)})
    $form.Add_Load({$timer.Start()})
    $form.ShowDialog()
    $timer.Dispose()
    $form.Dispose()
    
    

あなたの答え