问题描述
我正在处理一个自定义组件,现在我需要添加一个在 VS 的 properties windows
中可见的公共属性。
此属性必须是用户可以从中选择的值列表。就像一个组合框。
我在谷歌上搜索了很多,在 SO 上找到了 this 问题并尝试了它,但它似乎有很多工作,所以我想要一种更优雅的方式。此外,使用此代码,当用户从列表中选择项目时,我不会收到通知。
所以我发现显示用户可以选择的列表的正确方法(在 VS 的属性窗口中的自定义组件的属性上)就像下面的代码
public enum BUTTONSTYLE { Style_Solid,Style_GradientA,Style_GradientB,Style_Image,Style_Liquid };
BUTTONSTYLE _buttonStyle;
[DefaultValue(BUTTONSTYLE.Style_Solid)]
[Category("Appearance")]
[browsable(true)]
[Description("Sets style of the button")]
public BUTTONSTYLE newbuttonstyle
{
get
{
return _buttonStyle;
}
set
{
_buttonStyle = value;
}
}
虽然这很有效,但我的问题是这需要一个已定义且无法更改的枚举。就我而言,BUTTONSTYLE
中的值可以更改。但是不可能更改枚举中的项目。虽然 this 的回答说可以做到,但我试过了,但没有奏效。
所以我想可能我这样做是完全错误的。
如何以正确的方式将此类属性添加到我的自定义控件中?
为了清楚起见,该属性不是组合框,而是应该让用户选择一个值,就像它是组合框一样
编辑
为了清楚起见,我将尝试用其他方式解释我的问题是什么。
我需要一个属性来向用户显示一个列表,以便他可以从这个列表中选择一个项目。
到目前为止,我发现我应该为此使用一个枚举,它将在属性窗口中显示为用户可以从中选择的列表(另请参见图像)。
但是,这对我来说没有用,因为当我使用枚举时,列表中的项目是在设计时定义的,无法更改。
就我而言,根据其他属性的值,呈现给用户的项目可能会发生变化。
所以我毕竟不能使用枚举,那么正确的方法是什么?
我希望我的问题现在更清楚了
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)