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

用Visual C#做WinForm組件

編輯:C#基礎知識

  我們知道.NET的開發平台提了一個名稱空間System.Windows.Forms,在此名稱空間中提供了許多開發Windows Form的類和對象,這些類和對象不僅內容十分豐富,而且還具有十分強大的拓展性,可以利用這些類和對象,簡單而迅速的開發出自己需要的組件來。本文就將介紹如何利用.Net 開發平台原有的類和對象寫一個自己的WinForm組件,如何編譯自己的組件,且如何在一個客戶程序中使用它。

  一. 程序設計和運行的基本環境:

  (1).視窗2000服務器版

  (2)..Net FrameWork SDK Beta 2 版

  二. 本文中開發的組件功能介紹:

  (1).本文中開發的組件是一個自定義的組件,它是由二個組件合並而成的,一個是標簽組件( Lable ),另外一個是文本框組件( TextBox )。

  (2).自定義組件中定義了了二個新的屬性,一個屬性是Text,這個屬性是通過派生原有的文本框中的Text屬性而得到的;另外一個屬性是LabelText,它是通過繼承了原有的標簽的Text屬性而得到的。

  (3).組件的用途。

  在程序設計中,很多時候是要定義一個標簽,標簽顯示要輸入的文本內容。然後再定義一個文本框,填入信息。使用了本組件後,只要定義一個此組件,然後對組件屬性設定不同的值就可以了。這樣就簡化了程序設計過程。這一點將在後面的組件應用中得到體現。

  三. 開發組件中的難點和重點:

  (1).如何設定自定義組件的內容:

  本組件是由標簽組件和文本框組件組成的,首先要定義此組件的組成結構。具體的程序設計如下:

  

//LabledTextBox組件是繼承了 UserControl組件的
public class LabeledTextBox : UserControl
{
 //定義本組件的組成結構
 private Label myLabel ;
 private TextBox myTextBox ;
 ……
}

  (2).如何派生文本框中的Text屬性,而生成自己的新的屬性:

  由於是派生文本框的Text屬性,所以在程序中用到了關鍵字"override"。並且通過關鍵字"set"設定屬性,"get"關鍵字來讀取組件的屬性值。具體程序設計如下:

  

//組件中的Text屬性,是從文本框的Text的屬性派生而來
public override string Text
{
 get
 {
  return myTextBox.Text ;
 }
 set
 {
  myTextBox.Text = value ;
 }
}

  (3).如何創建一個新的屬性LabelText,並且此屬性值是通過繼承現有的標簽的"Text"屬性而得到的。具體的程序設計如下:

  

//創建一個新的屬性LabelText,並且此屬性的值是通過繼承此組件中的標簽的Text屬性值
public string LabelText
{
 get
 {
  return myLabel.Text ;
 }
 set
 {
  myLabel.Text = value ;
 }
}

四. 自定義組件的源程序代碼( control.cs ):

  

control.cs源代碼如下:
using System.Windows.Forms ;
//定義封裝此組件的名稱空間
namespace MyControls
{
 //LabledTextBox組件是繼承了 UserControl組件的
 public class LabeledTextBox : UserControl
 {
  //定義本組件的組成結構
  private Label myLabel ;
  private TextBox myTextBox ;
  public LabeledTextBox ( )
  {
   InitializeComponent ( ) ;
  }
  public void InitializeComponent ( )
  {
   //定義一個標簽
   myLabel = new Label ( ) ;
   myLabel.Location = new System.Drawing.Point ( 0 , 0 ) ;
   myLabel.Size = new System.Drawing.Size ( 100 , 20 ) ;
   //定義一個文本框
   myTextBox = new TextBox ( ) ;
   myTextBox.Location = new System.Drawing.Point ( 105 , 0 ) ;
   myTextBox.Size =new System.Drawing.Size ( 100 , 20 ) ;
   //同樣要設定所希望的組件大小
   this.Size =new System.Drawing.Size ( 205 , 20 ) ;
   //加入組件
   this.Controls.Add ( myLabel ) ;
   this.Controls.Add ( myTextBox ) ;
  }
  //組件中的Text屬性,是從文本框的Text的屬性派生而來
  public override string Text
  {
   get
   {
    return myTextBox.Text ;
   }
   set
   {
    myTextBox.Text = value ;
   }
  }
  //創建一個新的屬性LabelText,並且此屬性的值是通過繼承此組件中的標簽的  Text屬性值
  public string LabelText
  {
   get
   {
    return myLabel.Text ;
   }
   set
   {
    myLabel.Text = value ;
   }
  }
 }
}

  至此,我們已經完成了一個新的組件的構建過程。下面我們將編譯源程序文件,生產組件.

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