程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 使用Windows PowerShell創建WinForm程序

使用Windows PowerShell創建WinForm程序

編輯:關於.NET

Windows PowerShell最突出之處便在於.NET類庫的支持,很大的擴展了腳本的 能力。這使我們能直接在腳本中通過System.Windows.Forms程序集來創建窗口。

今天初次嘗試了一下在PowerShell下創建WinForm程序,將完成的這個簡單的 例子分享給大家。

如同在C#編寫WinForm程序中一樣,先創建一個Form類的實例,然後初始化: 添加流式布局面板,在面板上加了一個文本框和一個按鈕,給控件添加必要的事 件處理。當然使用C#的時候通常是VS自動為我們生成一個窗體類,並添加了一些 成員和初始化工作的代碼。不過ps貌似還沒有支持WinForm的IDE。

在Form對象創建完畢之後我們就可以把它顯示出來了。先使用Application類 啟用視覺效果,再用Application.Run(Form)方法顯示窗口,啟動消息循環。

Application.Run()可以為我們正確處理窗口的消息循環,在Run()方法外自行 Show窗口會讓窗口一閃而過。

因為代碼比較簡單,熟悉c# WinForm編程的同學應該能一目了然,所以不再做 詳細說明。

需要注意的是ps使用反射動態加載程序集的方法和ps中事件的處理方式。

[Reflection.Assembly]::LoadWithPartialName ("System.Windows.Forms")

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

執行效果如下圖:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved