首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Visual C# WinForm 自訂元件開發實戰(三)

     編輯:關於C語言

前言

承接前兩篇文章,本文將完成自訂元件的編譯、建立客戶端應用程式進行測試,並總結元件導向程式設計的優勢。

一、編譯元件:產生 DLL 組件

自訂元件的編譯過程與一般應用程式不同,輸出為類別庫(DLL)而非執行檔:

csc /r:System.Windows.Forms.dll /t:library control.cs
  • /t:library:指定輸出為類別庫
  • /r::參考 Windows Forms 組件

編譯成功後產生 control.dll,即為我們的自訂元件組件。

二、建立客戶端應用程式使用自訂元件

使用自訂元件與使用 .NET Framework 內建元件完全相同,遵循以下步驟:

1. 匯入元件命名空間

using MyControls;

2. 宣告元件變數

protected LabeledTextBox name, address, zip;

3. 設定元件屬性

自訂屬性 LabelText 的設定方式與內建屬性無異:

name = new LabeledTextBox();
name.Location = new System.Drawing.Point(5, 5);
name.LabelText = "姓名:";

4. 將元件加入表單

this.Controls.Add(name);
this.Controls.Add(address);
this.Controls.Add(zip);

三、完整客戶端程式碼:sample.cs

using System.Windows.Forms;
using MyControls;
using System;

public class Form1 : Form
{
    protected LabeledTextBox name, address, zip;
    protected Button show;

    public Form1()
    {
        InitializeComponent();
    }

    public static void Main()
    {
        Application.Run(new Form1());
    }

    public void InitializeComponent()
    {
        name = new LabeledTextBox();
        address = new LabeledTextBox();
        zip = new LabeledTextBox();
        show = new Button();

        // 設定元件屬性
        name.Location = new System.Drawing.Point(5, 5);
        name.LabelText = "姓名:";
        address.Location = new System.Drawing.Point(5, 35);
        address.LabelText = "住址:";
        zip.Location = new System.Drawing.Point(5, 70);
        zip.LabelText = "郵編:";

        show.Location = new System.Drawing.Point(5, 100);
        show.Text = "顯示元件屬性值";
        show.Size = new System.Drawing.Size(100, 25);
        show.Click += new System.EventHandler(show_Click);

        this.Text = "顯示自建元件的 LabelText 與 Text 屬性值!";
        this.Controls.Add(name);
        this.Controls.Add(address);
        this.Controls.Add(zip);
        this.Controls.Add(show);
    }

    protected void show_Click(object sender, EventArgs e)
    {
        string message = name.LabelText + " " + name.Text + "\n" +
                         address.LabelText + " " + address.Text + "\n" +
                         zip.LabelText + " " + zip.Text;
        MessageBox.Show(message, "元件的 LabelText 與 Text 屬性值如下:");
    }
}

四、編譯客戶端程式

csc /r:control.dll sample.cs

編譯時需參考自訂元件 control.dll,產生的 sample.exe 執行畫面如下:

客戶端執行介面

五、總結:元件導向程式設計的優勢

元件導向程式設計是未來軟體開發的重要趨勢。透過 Visual C# 開發元件,相較於其他語言,開發者在撰寫與部署時輕鬆許多:

  • 無需手動處理註冊表、GUID、介面定義等底層細節
  • .NET 執行環境自動管理元件版本、相依性與安全性
  • 跨語言繼承與互操作成為可能
  • 部署簡單,僅需複製 DLL 即可(無註冊機制)

這一切歸功於 .NET Framework 在底層已妥善處理了傳統元件開發的複雜問題,讓開發者專注於商務邏輯實作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved