天天看點

關于自定義控件

方法一:組合法

說明:将系統提供的多個控件組合成一個控件使用。

例如:将ListBox和TextBox組合成一個自定義控件MyDemoControl

步驟:

1,在項目中添加“使用者控件”,檢視代碼可以父類為UserControl;

2,為控件設計“界面”;

3,為控件程式設計,添加自定義屬性等;

4,為控件程式設計,添加方法(Public)

調試:

1,儲存,重新生成項目;

2,在工具欄中,能看到目前項目自定義的元件,其中包括自定義控件MyDemoControl;

3,拖動到視窗;

方法二:派生法

說明:以系統的某個控件為父類,派生一個新控件。

例如:以Button類作為父類,設計一個自定義控件MyButton(可以設定提示文本的按鈕)

步驟:

1,在項目中添加“自定義控件”,類名MyButton,父類為Button;

2,為控件程式設計,添加自定義屬性等;

3,為控件程式設計,添加方法(Public);

4,注意,此控件在設計視圖視窗不可見;

調試:

1,儲存,重新生成項目;

2,在工具欄中,能看到目前項目自定義的元件,其中包括自定義控件MyButton;

3,拖動到視窗;

有關代碼:

    public partial class MyButton : Button

    {

        private ToolTip _toolTip;  //内置ToolTip控件

        private string _TipsString;

        [DefaultValue(null)]

        [Description("提示消息"), Category("雜項")]

        [Browsable(true)]  //在屬性視窗可見

        public string TipsText

        {

            get { return this._TipsString; }

            set

            {

              this._TipsString = value;

              _toolTip.SetToolTip(this, _TipsString);

            }

        }

        public MyButton()

        {

            InitializeComponent();

            _toolTip = new ToolTip();

            this._toolTip.InitialDelay = 0;

            this._toolTip.ReshowDelay = 0;

            this._toolTip.SetToolTip(this, _TipsString);

        }

        public void SetTip(string tips)

        {

            if (tips != null)

            {

                this._TipsString = tips;

                this._toolTip.SetToolTip(this, _TipsString);

            }

        }

    }

方法三:第三方控件(拿來主義)

說明:搜尋别人提供的第三方控件(dll檔案),按說明安裝使用。

例如:SideBar,側邊欄控件

步驟:

1,在項目中添加“引用”,按提示操作;

2,在工具箱可見該控件,拖動到視窗中;

3,為控件程式設計;

調試:

1,儲存,重新生成項目;

2,觀察運作效果;

轉載自:http://scaucs.net/Student/ShowTopic?homeworkID=61133