使用Windows PowerShell創(chuàng)建WinForm程序
今天初次嘗試了一下在PowerShell下創(chuàng)建WinForm程序,將完成的這個簡單的例子分享給大家。
如同在C#編寫WinForm程序中一樣,先創(chuàng)建一個Form類的實例,然后初始化:添加流式布局面板,在面板上加了一個文本框和一個按鈕,給控件添加必要的事件處理。當然使用C#的時候通常是VS自動為我們生成一個窗體類,并添加了一些成員和初始化工作的代碼。不過ps貌似還沒有支持WinForm的IDE。
在Form對象創(chuàng)建完畢之后我們就可以把它顯示出來了。先使用Application類啟用視覺效果,再用Application.Run(Form)方法顯示窗口,啟動消息循環(huán)。
Application.Run()可以為我們正確處理窗口的消息循環(huán),在Run()方法外自行Show窗口會讓窗口一閃而過。
因為代碼比較簡單,熟悉c# WinForm編程的同學應該能一目了然,所以不再做詳細說明。
需要注意的是ps使用反射動態(tài)加載程序集的方法和ps中事件的處理方式。
$app=[System.Windows.Forms.Application] $myForm=new-object System.Windows.Forms.Form $myForm.Text="my window" $button1 = new-object System.Windows.Forms.Button $button1.Size = new-object System.Drawing.Size -argumentlist 75, 23 $button1.Text = "點我試試" $textbox1=new-object System.Windows.Forms.TextBox $textBox1.Multiline = $true; $textBox1.Text = "hello world" $textBox1.Size = new-object System.Drawing.Size -argumentlist 281, 227 $flowLayoutPanel1 = new-object System.Windows.Forms.FlowLayoutPanel $myForm.Controls.Add($flowLayoutPanel1) $flowLayoutPanel1.Controls.Add($textBox1); $flowLayoutPanel1.Controls.Add($button1); $flowLayoutPanel1.Dock = "Fill" $flowLayoutPanel1.FlowDirection = "TopDown" $button1ClickEventHandler = [System.EventHandler] { [System.Windows.Forms.MessageBox]::Show("Hello world!") } $button1.Add_Click($button1ClickEventHandler) $app::EnableVisualStyles() $app::Run($myForm) |
執(zhí)行效果如下圖: