新聞中心
今天初次嘗試了一下在PowerShell下創(chuàng)建WinForm程序,將完成的這個(gè)簡(jiǎn)單的例子分享給大家。

如同在C#編寫(xiě)WinForm程序中一樣,先創(chuàng)建一個(gè)Form類(lèi)的實(shí)例,然后初始化:添加流式布局面板,在面板上加了一個(gè)文本框和一個(gè)按鈕,給控件添加必要的事件處理。當(dāng)然使用C#的時(shí)候通常是VS自動(dòng)為我們生成一個(gè)窗體類(lèi),并添加了一些成員和初始化工作的代碼。不過(guò)ps貌似還沒(méi)有支持WinForm的IDE。
在Form對(duì)象創(chuàng)建完畢之后我們就可以把它顯示出來(lái)了。先使用Application類(lèi)啟用視覺(jué)效果,再用Application.Run(Form)方法顯示窗口,啟動(dòng)消息循環(huán)。
Application.Run()可以為我們正確處理窗口的消息循環(huán),在Run()方法外自行Show窗口會(huì)讓窗口一閃而過(guò)。
因?yàn)榇a比較簡(jiǎn)單,熟悉c# WinForm編程的同學(xué)應(yīng)該能一目了然,所以不再做詳細(xì)說(shuō)明。
需要注意的是ps使用反射動(dòng)態(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 = "點(diǎn)我試試" $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í)行效果如下圖:
新聞標(biāo)題:使用WindowsPowerShell創(chuàng)建WinForm程序
本文路徑:http://www.5511xx.com/article/dphegge.html


咨詢
建站咨詢
