我想要一个控件,允许如果另一个属性的值设置为特定值时显示属性。下面是我想什么是大大简化例如:C#动态设计时属性
public class CustomButton : Control
{
private ButtonType _bType = ButtonType.OnOff;
private Int32 _minPress = 50; // 50 mS
public ButtonType Button_Type
{
get { return _bType; }
set { _bType = value; }
}
public Int32 Minimum_Press_Time // Only for momentary buttons
{
get { return _minPress; }
set { _minPress = value; }
}
}
public enum ButtonType
{
Momentary,
OnOff
}
在增加的CustomButton到Windows.Forms的形式,在Minimum_Press_Time只会在属性窗口中显示,如果Button_Type改为ButtonType.Momentary。
这样的事情可能吗?
那么,在设计时,如何通过属性窗口将属性更改为'Momentary'?如果用户不小心改变了它并想要改回它呢?看起来像一个不好的用户体验,除非我错过了一些东西。你能给一个真实的场景吗? –
我想要什么“如果用户将按钮放在表单上,然后将Button_Type设置为Momentary,那么属性Minimum_Press_Time将出现在属性窗口中并且可以进行设置,如果用户将Button_Type设置为OnOff,则不再显示属性Minimum_Press_Time ,尽管这个值仍然在类变量中。“我不认为这是可能的。对于我的“真实”课,我有大约15个变量,根据所选的“类型”,它们是否有效。看起来我的选择是只显示所有属性(无论是否有效)或使用多个派生类。 –