.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
教你做MSN样式的控件

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

   我想尝试一下写文章的,就写下了这篇文章希望能够给C#的初学者给与一点提示。上午做了一个MSN样式的控件,我就以此为例教大家做控件。让大家感受一下 .net给我们带来的 方便。体验一下他快速开发的能力。下面我先介绍控件的大体结构(如图所示)
    
Bars和PageCollection为俩个集合分别来控制 bar 和page ,下面我说说我写控件碰到的一些难点,第一个就是控件做好了,如何在自己以后的编程不写代码就能完成界面的设计,这个。net已经给我们准备好一套很好的机制,只要照着用就可以了,我参照了 微软的tabcontrol 写法,通过设置属性就可以添加选型卡,我的做法为[Category("Appearance")]
  [Description("在这里添加选项卡了")]
  [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
  public PageCollection PagesItem
  {
   get
   {
    return this.pages;
   }
  }
  [Category("Appearance")]
  public Panel Bars
  {
   get
   {
    return this.myBars;
   }
  }
注意这条属性哦  [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)],具体什么意思还是你自己看看帮助了,
第二个难点就是如何控制控件在设计时候的状态就是说什么时候把消息教给控件处理,什么时候把消息交给设计器来处理,在这一点我做的不是很成功,我是把消息都交给控件处理,虽然试图精确的控制但是还是没有能控制的住,
 protected override void WndProc(ref System.Windows.Forms.Message m)
  {
      this.DefWndProc(ref m); //把消息全交给了控件,缺点就是设计器都不能完成单击选中的功能了,但是你拖动还是可以的,
   #region garbage
//   switch(m.Msg)
//   {
//    case (int)Msgs.WM_MOUSEMOVE:
//     this.DefWndProc(ref m);
//     break;
//    case (int)Msgs.WM_LBUTTONDOWN:
//     if(this.Control != null)
//     {
//      int xPos = (short)((uint)m.LParam & 0x0000FFFFU);
//      int yPos = (short)(((uint)m.LParam & 0xFFFF0000U) >> 16);
//      Rectangle rect = new Rectangle(this.Control.Location,new Size(40,100));
//      if(rect.Contains(xPos,yPos))
//      {
//       this.DefWndProc(ref m);
//      }
//      else
//      {
//       base.WndProc(ref m);
//      }
//     }
//     break;
//    default:
//     base.WndProc(ref m);
//     break;
//   }
   #endregion

,下面说说如何使用,如果你用过tabcontrol,用我的控件就很容易了,通过设置 pageitem 属性 ,和page的barimage属性就可以了。好了一个接近完善的控件就做出来的,使用是那末的方便,只要把它加入工具箱就可以了,不需要每次都写一些复杂的代码,做控件是不时很容易哦 ,
需要的的向我要了 QQ:59294081




相关文章

相关软件