新聞中心
對于C# WinForm控件開發(fā),MSDN上提供了很多使用的方法,那么這里就向你介紹對于C# WinForm控件開發(fā)的基本了解內(nèi)容,C#開發(fā)WinForm控件的類型以及各自的特點。

目前創(chuàng)新互聯(lián)公司已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計、荷塘網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
C# WinForm控件開發(fā)的伊始:
其實C#開發(fā)WinForm控件并不是很復(fù)雜,.NET為我們提供了豐富的底層支持。如果你有MFC或者API圖形界面的開發(fā)經(jīng)驗,那么學(xué)會WinForm控件可能只需要很短的時間就夠了。
自己開發(fā)的WinForm控件通常有三種類型:復(fù)合控件(Composite Controls),擴展控件(Extended Controls),自定義控件(Custom Controls)。
◆復(fù)合控件:將現(xiàn)有的各種控件組合起來,形成一個新的控件,將集中控件的功能集中起來。
◆擴展控件:在現(xiàn)有控件的控件的基礎(chǔ)上派生出一個新的控件,為原有控件增加新的功能或者修改原有控件的控能。
◆自定義控件:直接從System.Windows.Forms.Control類派生出來。Control類提供控件所需要的所有基本功能,包括鍵盤和鼠標(biāo)的事件處理。自定義控件是最靈活最強大的方法,但是對開發(fā)者的要求也比較高,你必須為Control類的OnPaint事件寫代碼,你也可以重寫Control類的WndProc方法,處理更底層的Windows消息,所以你應(yīng)該了解GDI+和Windows API。
C# WinForm控件開發(fā)之控件(可視化的)的基本特征:
1. 可視化。
2. 可以與用戶進(jìn)行交互,比如通過鍵盤和鼠標(biāo)。
3. 暴露出一組屬性和方法供開發(fā)人員使用。
4. 暴露出一組事件供開發(fā)人員使用。
5. 控件屬性的可持久化。
6. 可發(fā)布和可重用。
這些特征是我自己總結(jié)出來,不一定準(zhǔn)確,或者還有遺漏,但是基本上概括了控件的主要方面。
接下來我們做一個簡單的控件來增強一下感性認(rèn)識。首先啟動VS2005創(chuàng)建一個ClassLibrary工程,命名為CustomControlSample,VS會自動為我們創(chuàng)建一個solution與這個工程同名,然后刪掉自動生成的Class1.cs文件,最后在Solution explorer里右鍵點擊CustomControlSample工程選擇Add->Classes…添加一個新類,將文件的名稱命名為FirstControl。下邊是代碼:
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Windows.Forms;
- using System.ComponentModel;
- using System.Drawing;
- namespace CustomControlSample
- {
- public class FirstControl : Control
- {
- public FirstControl()
- {
- }
- // ContentAlignment is an enumeration defined in the System.Drawing
- // namespace that specifies the alignment of content on a drawing
- // surface.
- private ContentAlignment alignmentValue = ContentAlignment.MiddleLeft;
- [
- Category("Alignment"),
- Description("Specifies the alignment of text.")
- ]
- public ContentAlignment TextAlignment
- {
- get
- {
- return alignmentValue;
- }
- set
- {
- alignmentValue = value;
- // The Invalidate method invokes the OnPaint method described
- // in step 3.
- Invalidate();
- }
- }
- protected override void OnPaint(PaintEventArgs e)
- {
- base.OnPaint(e);
- StringFormat style = new StringFormat();
- style.Alignment = StringAlignment.Near;
- switch (alignmentValue)
- {
- case ContentAlignment.MiddleLeft:
- style.Alignment = StringAlignment.Near;
- break;
- case ContentAlignment.MiddleRight:
- style.Alignment = StringAlignment.Far;
- break;
- case ContentAlignment.MiddleCenter:
- style.Alignment = StringAlignment.Center;
- break;
- }
- // Call the DrawString method of the System.Drawing class to write
- // text. Text and ClientRectangle are properties inherited from
- // Control.
- e.Graphics.DrawString(
- Text,
- Font,
- new SolidBrush(ForeColor),
- ClientRectangle, style);
- }
- }
- }
C# WinForm控件開發(fā)的基本前期需要了解的內(nèi)容就向你介紹到這里,希望對你進(jìn)行C# WinForm控件開發(fā)有所幫助。
名稱欄目:淺析C#WinForm控件開發(fā)前期準(zhǔn)備
文章源于:http://fisionsoft.com.cn/article/cdgdjog.html


咨詢
建站咨詢
