自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析C# WinForm控件開發(fā)前期準(zhǔn)備

開發(fā) 后端
C# WinForm控件開發(fā)是我們在C#使用過程中的一個(gè)階段,那么掌握C# WinForm控件開發(fā)之前需要明白什么呢?C# WinForm控件開發(fā)都有什么可以實(shí)現(xiàn)呢?那么本文就向你詳細(xì)介紹。

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

C# WinForm控件開發(fā)的伊始:

其實(shí)C#開發(fā)WinForm控件并不是很復(fù)雜,.NET為我們提供了豐富的底層支持。如果你有MFC或者API圖形界面的開發(fā)經(jīng)驗(yàn),那么學(xué)會WinForm控件可能只需要很短的時(shí)間就夠了。

自己開發(fā)的WinForm控件通常有三種類型:復(fù)合控件(Composite Controls),擴(kuò)展控件(Extended Controls),自定義控件(Custom Controls)。

◆復(fù)合控件:將現(xiàn)有的各種控件組合起來,形成一個(gè)新的控件,將集中控件的功能集中起來。

◆擴(kuò)展控件:在現(xiàn)有控件的控件的基礎(chǔ)上派生出一個(gè)新的控件,為原有控件增加新的功能或者修改原有控件的控能。

◆自定義控件:直接從System.Windows.Forms.Control類派生出來。Control類提供控件所需要的所有基本功能,包括鍵盤和鼠標(biāo)的事件處理。自定義控件是最靈活最強(qiáng)大的方法,但是對開發(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)確,或者還有遺漏,但是基本上概括了控件的主要方面。

接下來我們做一個(gè)簡單的控件來增強(qiáng)一下感性認(rèn)識。首先啟動VS2005創(chuàng)建一個(gè)ClassLibrary工程,命名為CustomControlSample,VS會自動為我們創(chuàng)建一個(gè)solution與這個(gè)工程同名,然后刪掉自動生成的Class1.cs文件,最后在Solution explorer里右鍵點(diǎn)擊CustomControlSample工程選擇Add->Classes…添加一個(gè)新類,將文件的名稱命名為FirstControl。下邊是代碼:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using System.Windows.Forms;  
  5. using System.ComponentModel;  
  6. using System.Drawing;  
  7.  
  8. namespace CustomControlSample  
  9. {  
  10. public class FirstControl : Control  
  11. {  
  12.  
  13. public FirstControl()  
  14. {  
  15.  
  16. }  
  17.  
  18. // ContentAlignment is an enumeration defined in the System.Drawing  
  19. // namespace that specifies the alignment of content on a drawing   
  20. // surface.  
  21. private ContentAlignment alignmentValue = ContentAlignment.MiddleLeft;  
  22.  
  23. [  
  24. Category("Alignment"),  
  25. Description("Specifies the alignment of text.")  
  26. ]  
  27. public ContentAlignment TextAlignment  
  28. {  
  29.  
  30. get 
  31. {  
  32. return alignmentValue;  
  33. }  
  34. set 
  35. {  
  36. alignmentValue = value;  
  37.  
  38. // The Invalidate method invokes the OnPaint method described   
  39. // in step 3.  
  40. Invalidate();  
  41. }  
  42. }  
  43.  
  44.  
  45. protected override void OnPaint(PaintEventArgs e)  
  46. {  
  47. base.OnPaint(e);  
  48. StringFormat style = new StringFormat();  
  49. style.Alignment = StringAlignment.Near;  
  50. switch (alignmentValue)  
  51. {  
  52. case ContentAlignment.MiddleLeft:  
  53. style.Alignment = StringAlignment.Near;  
  54. break;  
  55. case ContentAlignment.MiddleRight:  
  56. style.Alignment = StringAlignment.Far;  
  57. break;  
  58. case ContentAlignment.MiddleCenter:  
  59. style.Alignment = StringAlignment.Center;  
  60. break;  
  61. }  
  62.  
  63. // Call the DrawString method of the System.Drawing class to write   
  64. // text. Text and ClientRectangle are properties inherited from  
  65. // Control.  
  66. e.Graphics.DrawString(  
  67. Text,  
  68. Font,  
  69. new SolidBrush(ForeColor),  
  70. ClientRectangle, style);  
  71.  
  72. }  
  73. }  
  74. }  

C# WinForm控件開發(fā)的基本前期需要了解的內(nèi)容就向你介紹到這里,希望對你進(jìn)行C# WinForm控件開發(fā)有所幫助。

【編輯推薦】

  1. C# XML編程刪除XML文件內(nèi)容操作詳解
  2. 淺談C# 加密中MD5和SHA1加密實(shí)現(xiàn)
  3. 簡析散列算法在C# 加密中的應(yīng)用
  4. RSA實(shí)現(xiàn)C# 加密詳解
  5. 詳解TripleDES實(shí)現(xiàn)C# 加密操作
責(zé)任編輯:仲衡 來源: 百度空間
相關(guān)推薦

2009-09-03 17:49:59

C#瀏覽器開發(fā)

2009-09-11 11:33:58

C# WinForm控Attribute

2009-08-11 14:45:41

C# DataGrid

2009-08-12 10:35:50

C#調(diào)用ActiveX

2009-08-06 16:58:40

C#編寫ActiveX

2009-09-04 17:58:38

C# Web Brow

2009-08-28 15:05:35

C#編寫Calenda

2009-08-20 09:30:03

C#開發(fā)WinForm

2009-08-20 10:24:52

C#開發(fā)WinForm

2009-08-17 15:48:47

C# WinForm進(jìn)

2009-09-11 12:31:15

C# WinForm控設(shè)置默認(rèn)值

2009-09-11 12:07:12

C# WinForm控

2009-09-01 10:59:22

C#項(xiàng)目

2009-08-26 13:36:33

C#打印控件

2009-09-09 10:47:29

C# CheckBox

2009-08-24 09:55:24

C#集成開發(fā)環(huán)境

2009-10-10 14:54:44

treeView1控件

2009-09-01 10:35:59

C# WinForm控

2009-08-24 10:10:09

C#復(fù)合控件

2009-09-08 14:54:40

C# listBox控
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號