浅析C#WinForm控件开发前期准备

对于C# WinForm控件开发,MSDN上提供了很多使用的方法,那么这里就向你介绍对于C# WinForm控件开发的基本了解内容,C#开发WinForm控件的类型以及各自的特点。

目前创新互联公司已为上千多家的企业提供了网站建设、域名、网络空间、网站托管维护、企业网站设计、荷塘网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

C# WinForm控件开发的伊始:

其实C#开发WinForm控件并不是很复杂,.NET为我们提供了丰富的底层支持。如果你有MFC或者API图形界面的开发经验,那么学会WinForm控件可能只需要很短的时间就够了。

自己开发的WinForm控件通常有三种类型:复合控件(Composite Controls),扩展控件(Extended Controls),自定义控件(Custom Controls)。

◆复合控件:将现有的各种控件组合起来,形成一个新的控件,将集中控件的功能集中起来。

◆扩展控件:在现有控件的控件的基础上派生出一个新的控件,为原有控件增加新的功能或者修改原有控件的控能。

◆自定义控件:直接从System.Windows.Forms.Control类派生出来。Control类提供控件所需要的所有基本功能,包括键盘和鼠标的事件处理。自定义控件是最灵活最强大的方法,但是对开发者的要求也比较高,你必须为Control类的OnPaint事件写代码,你也可以重写Control类的WndProc方法,处理更底层的Windows消息,所以你应该了解GDI+和Windows API。

C# WinForm控件开发之控件(可视化的)的基本特征:

1. 可视化。

2. 可以与用户进行交互,比如通过键盘和鼠标。

3. 暴露出一组属性和方法供开发人员使用。

4. 暴露出一组事件供开发人员使用。

5. 控件属性的可持久化。

6. 可发布和可重用。

这些特征是我自己总结出来,不一定准确,或者还有遗漏,但是基本上概括了控件的主要方面。

接下来我们做一个简单的控件来增强一下感性认识。首先启动VS2005创建一个ClassLibrary工程,命名为CustomControlSample,VS会自动为我们创建一个solution与这个工程同名,然后删掉自动生成的Class1.cs文件,最后在Solution explorer里右键点击CustomControlSample工程选择Add->Classes…添加一个新类,将文件的名称命名为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. namespace CustomControlSample
  8. {
  9. public class FirstControl : Control
  10. {
  11. public FirstControl()
  12. {
  13. }
  14. // ContentAlignment is an enumeration defined in the System.Drawing
  15. // namespace that specifies the alignment of content on a drawing 
  16. // surface.
  17. private ContentAlignment alignmentValue = ContentAlignment.MiddleLeft;
  18. [
  19. Category("Alignment"),
  20. Description("Specifies the alignment of text.")
  21. ]
  22. public ContentAlignment TextAlignment
  23. {
  24. get
  25. {
  26. return alignmentValue;
  27. }
  28. set
  29. {
  30. alignmentValue = value;
  31. // The Invalidate method invokes the OnPaint method described 
  32. // in step 3.
  33. Invalidate();
  34. }
  35. }
  36. protected override void OnPaint(PaintEventArgs e)
  37. {
  38. base.OnPaint(e);
  39. StringFormat style = new StringFormat();
  40. style.Alignment = StringAlignment.Near;
  41. switch (alignmentValue)
  42. {
  43. case ContentAlignment.MiddleLeft:
  44. style.Alignment = StringAlignment.Near;
  45. break;
  46. case ContentAlignment.MiddleRight:
  47. style.Alignment = StringAlignment.Far;
  48. break;
  49. case ContentAlignment.MiddleCenter:
  50. style.Alignment = StringAlignment.Center;
  51. break;
  52. }
  53. // Call the DrawString method of the System.Drawing class to write 
  54. // text. Text and ClientRectangle are properties inherited from
  55. // Control.
  56. e.Graphics.DrawString(
  57. Text,
  58. Font,
  59. new SolidBrush(ForeColor),
  60. ClientRectangle, style);
  61. }
  62. }
  63. }

C# WinForm控件开发的基本前期需要了解的内容就向你介绍到这里,希望对你进行C# WinForm控件开发有所帮助。

新闻标题:浅析C#WinForm控件开发前期准备
本文来源:http://www.shufengxianlan.com/qtweb/news38/523138.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联