点击这里给我发消息 点击这里给我发消息

ASP.net控件开发系列(六)

添加时间:2010-1-5
    相关阅读: 设计 ASP 开发

UITypeEdit

  “我要红桃”

  假如,你现在在做一个“扑克”控件,扑克牌有个属性--花色,你想在用户选择花色这个属性后,属性窗口呈现的不仅仅是文字,还有一个小小的花色图标来表示花色,“红桃”就有个小“红桃”图标在前面显示,“黑桃”就有个“黑桃”图标在前面显示,就像你选择其它控件的BackColor时,颜色前还有个小方色块来表示选定的颜色,多体贴人的设计啊。

  现在,我们就来做这件事:

public class Squeezer
{
.
public CardTypes CardType
{
}
}
[Editor(typeof(CardTypesEditor), typeof(System.Drawing.Design.UITypeEditor))]
public class CardTypes
{
..
}
public class CardTypesEditor : UITypeEditor
{
 public override bool GetPaintValueSupported(ITypeDescriptorContext context)
 {
  return true;//支持画小图
 }
 public override void PaintValue(PaintValueEventArgs pe) //定义根据值画小图的逻辑
 {
  string bmpName = null;
  CardTypes C = (CardTyes)pe.Value;
  switch(C.Value)
  {
  case CarderTypes.HongTao:
   bmpName = "红桃.bmp";//图片必须是嵌入的资源,大小为16*16,类型为BMP
   break;
  }
  Bitmap b = new Bitmap(typeof(GradeEditor), bmpName);
  pe.Graphics.DrawImage(b, pe.Bounds);
  b.Dispose(); 
 }
}

  在上面的代码中,我们通过EditorAttribute来使花色类和一个Editor关联,再通过这个Editor来实现画示意小图的功能

本文作者:未知
咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册