一个类的自定义控件属性

时间:2016-10-18 06:09:56

标签: c# winforms

我将使用OPC制作工业HMI应用程序。我想用单选按钮显示PLC的变量。但我想在radiobutton属性区域选择plc变量。有一个类包含所有PLC的变量。我想为这个类中的每个radiobutton选择不同的变量。如果变量为真,则会进行检查。

要做到这一点,我想在c#上制作自定义单选按钮,并为其添加自定义属性。

我可以创建一个自定义单选按钮,但我无法将其属性区域与另一个类varibales相关联。当我点击属性区域时它应该显示类的所有变量

我该怎么做?

 public partial class My_RadioButton : RadioButton
{

    private VarsFromPLC _FrPLC;

    [Description("Displaying PLC Variables"),
     Category("Appearance"),
     TypeConverter(typeof(VarsFromPLC)),
     Browsable(true)]
    public VarsFromPLC FrPLC
    {
        get { return _FrPLC; }
    }


    public My_RadioButton()
    {
        _FrPLC = new VarsFromPLC();
    }

    protected override void OnPaint(PaintEventArgs pe)
    {
        base.OnPaint(pe);
    }
}

public class VarsFromPLC
    {
        public bool bTry1 { get; }
        public bool bTry2 { get; }
        public bool bTry3 { get; }
        public bool bTry4 { get; }
        public bool bTry5 { get; }
        public bool bTry6 { get; }
        public bool bTry7 { get; }
        public bool bTry8 { get; }
        public bool bTry9 { get; }
        public bool bTry10 { get; }
    }

enter image description here

1 个答案:

答案 0 :(得分:1)

在您阅读有关将此类下拉列表添加到属性网格的答案之前,请考虑以下注意事项:

  • 使用一组RadioButton控件就像使用ComboBox在可用选项中显示/修改所选选项一样。

  • 如果要显示这些属性的值,您似乎正在寻找数据绑定。

  • 如果只能将其中一个属性设置为true,则可以创建一组RadioButton控件,并将每个控件绑定到该类的相应属性。这样,单选按钮可用于显示/修改这些属性 注意:在这种情况下,让enum包含所有选项并且只是该类中该枚举类型的单个属性似乎更好。

  • 如果多个属性可以包含true个值,则可以使用一组CheckBox控件并将它们绑定到该类的相应属性。

无论如何,如果你想在属性网格中显示这样的下拉菜单,你可以使用以下任一选项: