如何為Windows Forms應用程式添加啟動參數(Start-Up Parameters)

來源:互聯網
上載者:User

標籤:style   blog   http   使用   檔案   2014   

很多場合下,我們需要通過命令列或者捷徑在Windows Forms程式啟動時向其傳遞參數。 這些參數可能是用來載入某一個文檔,或者是應用程式的初始化設定檔。 特別是對那些需要高度自訂配置的大程式,經常需要調整運行參數來協助使用者獲得不同的運行結果。

通常,我們可以通過以下兩種方式來實現這個需求:

  • 重載進入點函數(Main)
  • 利用Environment類
重載進入點函數(Main)

我們在Visual Studio中建立Windows Forms程式時, VS會自動幫我們建立一個預設的進入點方法——Main。

[STAThread]static void Main(){    Application.EnableVisualStyles();    Application.SetCompatibleTextRenderingDefault(false);    Application.Run(new Form1());}

這個進入點函數基本上適用所有程式,但如果想要接收命令列參數,則必須用一個帶參數的Main方法來替換它。我們可以簡單的向Main方法添加一個string數組參數, 比如:

[STAThread]static void Main(string[] args){    Application.EnableVisualStyles();    Application.SetCompatibleTextRenderingDefault(false);    Application.Run(new Form1());}

現在,我們就可以通過這個string數組(args)的值來擷取程式啟動時傳遞進來的參數資訊。 如果沒有傳遞任何參數,則這個數組為空白。否則,每一個參數對應數組中的一個元素,這些參數用空格符來分隔。

利用Environment類

第二種擷取應用程式啟動參數的方式就是使用Environment類。 我們可以在System命名空間下找到Environment類,類中包含一個叫GetCommandLineArgs()的方法。 此方法會返回一個string數組,而數組的第一個值是程式的檔案名稱(這也是兩種方法所擷取的參數的區別)。 如果可用,則其他元素就是通過命令列傳遞過來的參數。

注: 命令列可以通過捷徑來配置,比如:

樣本程式

為了分別示範利用這兩種方法來向向Windows Forms程式傳遞啟動參數,我通過一個簡單的程式來說明。

  • 建立一個Windows Form Application。
  • 建立兩個Form,分別向其中添加一個RichTextBox控制項,然後將RichTextBox控制項的Dock屬性設定為DockStyle.Fill。
  • 修改Program.cs中的進入點函數,如下:
    [STAThread]static void Main(string[] args){    Application.EnableVisualStyles();    Application.SetCompatibleTextRenderingDefault(false);    Form form;    
    // 如果第一個參數為Form1則程式會開啟Form1表單,否則則開啟Form2表單。 if (args != null && args.Length > 0 && args[0] == "Form1") { form = new Form1(); ((Form1)form).CommandArguments = args; } else { form = new Form2(); ((Form2)form).CommandArguments = System.Environment.GetCommandLineArgs(); } Application.Run(form);}  
  • 然後分別在兩個Form載入時,讀取傳遞的參數,然後顯示在RichTextBox中。下面是Form1的代碼:
    public partial class Form1 : Form{    public string[] CommandArguments { get; set; }    public Form1()    {        InitializeComponent();    }    private void Form1_Load(object sender, EventArgs e)    {        if (CommandArguments != null)        {            foreach (var item in CommandArguments)            {                richTextBox1.AppendText(item);                richTextBox1.AppendText(Environment.NewLine);            }        }    }}
  • 有兩種方法設定參數,一是通過捷徑;另一個是通過命令列來執行exe檔案時傳遞。兩種方法得到的結果是一樣的,如下:
  • 代碼下載: http://pan.baidu.com/s/1i3xb74T
參考文獻
  • Windows Forms Application Start-Up Parameters
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.