日期:2014-05-18  浏览次数:20842 次

.Framwork 中,winform自定义控件属性如何实现。
比如Visible 属性下拉有True . false 是如何实现的..给点代码参考一下

------解决方案--------------------
首先继承系统控件
Public Class TextBoxDecimal
Inherits System.Windows.Forms.TextBox
Implements System.ComponentModel.ISupportInitialize

然后写Property方法就可以了
Private _allowBlank As Boolean = False
<Category("追加")> _
Public Property AllowBlank() As Boolean
Get
Return Me._allowBlank
End Get
Set(ByVal Value As Boolean)
Me._allowBlank = Value
End Set
End Property



------解决方案--------------------
1楼那位的代码是错的,那是为属性分组的代码,楼主的问题应该与你的这个属性的类有关
------解决方案--------------------
C# code

public class Define : System.Windows.Forms.UserControl
{
   private int a;
   
   public Define() : base()
   {
      this.a = -1;
   }
   
   //自定义属性...
   public Int32 A
   {
      get
      {
         return this.a;
      }
      set
      {
         this.a = value;
      }
   }
}

------解决方案--------------------
簡簡單單.. 好像是对的
------解决方案--------------------
是要写一个自定义类型的PropertyGrid的编辑界面吧,
在属性上(或者属性的类型上)添加Editor特性,例如:[Editor("你的UITypeEditor类型的AssemblyQualifiedName", typeof(UITypeEditor))]
再去实现UITypeEditor(不会的话就随便反编译一个System.Drawing.Design.dll或者System.Windows.Forms.Design.dll中的类抄一下就行了)
------解决方案--------------------
bool visible;
public bool Visible
{
get
{
return visible;
}
set
{
visible = value;
}
}