我有一个用户定义的按钮,它可能有一个Style属性,我可以在properties窗口中为其选择一个值,并根据该值改变其图像和样式。

如何使此属性在properties窗口的下拉列表中具有一些预定义和固定值?并选择一个值会导致运行方法



-细节:

此按钮可能具有指定的外观,例如暂停和播放样式。所以我开设了一个风格班:

// style of the button; pause, play, reset, etc
public abstract class ButtonStyle
{
    public abstract Image GetImage();
}
// inherited classes of class ButtonStyle
public class PauseButtonStyle : ButtonStyle
{
    public override Image GetImage()
    {
        return CustomButtonLibrary.Properties.Resources.PauseButton;
    }
}
public class PlayButtonStyle : ButtonStyle
{
    public override Image GetImage()
    {
        return CustomButtonLibrary.Properties.Resources.PlayButton;
    }
}


按钮中有一个方法可以设置指定的样式(暂停,播放,...):

public void SetStyle(ButtonStyle style)
{
    button1.Image = style.GetImage();
}


现在如何在properties窗口中为该自定义按钮提供属性,该属性具有一些默认值,例如pauseplay等,并选择它会导致更改按钮的样式(通过运行SetStyle方法)

最佳答案

我将进行枚举并将其公开为Style属性。然后,使用一个内部字典关闭该枚举值,以选择适当的ButtonStyle对象传递给您的SetStyle方法。

09-26 14:24