2017-03-20 9 views
0

フォームの開始時に関数を読み込む方法を知りたいですか?フォームの開始時の読み込み機能

この例では、RichTextBoxに行を追加する関数test()を起動したいと思います。私はボタンを望んでいないし、試してみると$form1.Showフォームは動作しません。フォームが閉じられるまで

$ErrorActionPreference = 'Continue' 

Function test { 
    $richtextbox1.AppendText("testttt `n") 
} 

function CreateForm { 
    Add-Type -AssemblyName System.Windows.Forms 
    Add-Type -AssemblyName System.Drawing 

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

    #Form Parameter 
    $form1.Text = "" 
    $form1.Name = "" 
    $System_Drawing_Size = New-Object System.Drawing.Size 
    $System_Drawing_Size.Width = 600 
    $System_Drawing_Size.Height = 500 
    $form1.ClientSize = $System_Drawing_Size 
    $Form1.MinimizeBox = $false 
    $Form1.MaximizeBox = $true 
    $form1.ControlBox = $true 
    $form1.Topmost = $true 
    $Form1.AutoSize = $true 
    $Form1.ShowInTaskbar = $false 
    $form1.StartPosition = "CenterScreen" 

    $label1 = New-Object System.Windows.Forms.Label 
    $label1.Location = New-Object System.Drawing.Point(200, 40) 
    $label1.Size = New-Object System.Drawing.Size(400, 40) 
    $label1.Text = "" 
    $label1.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 18, [System.Drawing.FontStyle]::Bold) 
    $form1.Controls.Add($label1) 

    $label2 = New-Object System.Windows.Forms.Label 
    $label2.Location = New-Object System.Drawing.Point(50, 125) 
    $label2.Size = New-Object System.Drawing.Size(400, 40) 
    $label2.Text = "Step : " 
    $label2.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 18, [System.Drawing.FontStyle]::Bold) 
    $form1.Controls.Add($label2) 

    $label3 = New-Object System.Windows.Forms.Label 
    $label3.Location = New-Object System.Drawing.Point(50, 175) 
    $label3.Size = New-Object System.Drawing.Size(400, 40) 
    $label3.Text = " in Progress" 
    $label3.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 18, [System.Drawing.FontStyle]::Bold) 
    $form1.Controls.Add($label3) 

    $richTextBox1 = New-Object System.Windows.Forms.RichTextBox 
    $richTextBox1.Location = New-Object System.Drawing.Point(50, 250) 
    $richTextBox1.Size = New-Object System.Drawing.Size(500, 200) 
    $richTextBox1.Text = " : `n" 
    $richTextBox1.Font = New-Object System.Drawing.Font("Microsoft Sans Serif", 18, [System.Drawing.FontStyle]::Bold) 
    $form1.Controls.Add($richTextBox1) 

    $InitialFormWindowState = $form1.WindowState 
    #Show the Form 

    $form1.ShowDialog() 
    test 
} 

CreateForm 

答えて

2

CreateForm -functionが$form1.ShowDialog()にフリーズするので、testは実行されません。できることはtestをイベントハンドラとしてフォームの最初の起動時にトリガーされたShownイベントに追加することです。

置き換えます

$form1.ShowDialog() 
test 

で:

$form1.add_Shown({ test }) 
$form1.ShowDialog() 

あなたはまた、それだけでとにかくフォームを修正するので、ダイアログを表示する前に関数を実行(または単にフォーム - で直接変更を行うことができますコード):

test 
$form1.ShowDialog() 
+0

Whoaとてもうまく動作します:)ありがとう – twenty94470

関連する問題