如何使自定义属性显示在属性管理器中
本文关键字:属性 管理器 显示 何使 自定义属性 | 更新日期: 2023-09-27 18:09:17
我正在使用Visual Studio 2015 Community在c#中使用Windows Forms创建一个应用程序。我已经创建了一个自定义控件(实现一个按钮)与公共属性和设置。当我将自定义按钮添加到表单时,如何使这些自定义属性/设置显示在Visual Studio属性管理器中?
我有私有的支持和公共的访问器,就像人们通常做的那样;
多年前我经常这样做,但我已经忘记了如何让它出现在物业管理中。默认情况下,在VS 2015和之前的版本中,属性管理器是通常用来设置标准控件属性的区域,位于IDE的右下方。
下面是我正在使用的一个属性的片段:
public class Spot : Button
{
// backers for the properties
private bool isselected = false;
// //////////////////////////////////////////////////////////////
// user accessable properties relying on the above backers
//
/// <summary>
/// Get/Set if the spot is selected
/// </summary>
public bool isSelected
{
get
{
return isselected;
}
set
{
isselected = value;
}
}
}
希望这里有人能帮助提醒我怎么做。我确实在这里做了几次搜索,并通过谷歌,但似乎没有地方有我要找的东西。通过我的特定搜索,包括"Property Manager",我得到了许多房地产结果,这些结果与我正在寻找的结果相差甚远。
您需要使用DependencyProperty。从这里开始:
// Dependency Property
public static DependencyProperty CurrentTimeProperty =
DependencyProperty.Register( "CurrentTime", typeof(DateTime),
typeof(MyClockControl), new FrameworkPropertyMetadata(DateTime.Now));
// .NET Property wrapper
public DateTime CurrentTime
{
get { return (DateTime)GetValue(CurrentTimeProperty); }
set { SetValue(CurrentTimeProperty, value); }
}
这将给你一个新的属性"CurrentTime"作为一个例子。
你可以这样写:
public static DependencyProperty SelectedProperty =
DependencyProperty.Register( "IsSelected", typeof(Boolean),
typeof(Spot), new FrameworkPropertyMetadata(false));
public Boolean IsSelected
{
get { return (Boolean)GetValue(SelectedProperty); }
set { SetValue(SelectedProperty, value); }
}
—编辑,因为它是为WinForms:
试试如下所示:
[EditorBrowsable(EditorBrowsableState.Always)]
[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[Bindable(true)]
public bool isSelected
{
get
{
return isselected;
}
set
{
isselected = value;
}
}