我将使用OPC制作一个工业人机界面应用程序。我想用单选按钮显示PLC的变量。但是我想选择无线电按钮属性区域的plc变体。有一个包含所有PLC变量的类。我想为这个班的每个无线电按钮选择不同的变量。如果变量为true,则将对其进行检查。
为此,我希望在c#上设置自定义单选按钮,并向其添加自定义功能。
我可以制作一个自定义单选按钮,但是我不能将它的属性区域与另一个类变量关联起来。当我单击属性区域时,它应该显示类的所有变量。
我怎么能这么做?
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; }
}
发布于 2016-10-18 13:32:53
在阅读关于在属性网格中添加此类下拉列表的答案之前,请考虑以下说明:
RadioButton
控件就像使用ComboBox
在可用选项中显示/修改所选选项一样。true
,则可以创建一组RadioButton
控件,并将每个控件绑定到该类的相应属性。这样,单选按钮就可以用于显示/修改这些属性。
注意:在本例中,似乎最好在类中有一个包含所有选项的枚举,并且只包含该枚举类型的一个属性。true
值,则可以使用一组CheckBox
控件并将它们绑定到类的相应属性。无论如何,如果您想在属性网格中显示这样的下拉列表,可以使用以下任一选项:
Enum
并定义该枚举类型的属性。这样,您的属性的属性网格中将显示下拉列表.(是最简单的选项)TypeConverter
,并重写GetStandardValuesSupported
,为属性提供一些标准值,以便在下拉显示中显示。要查看一个示例,请看:向“属性”窗口提供标准值列表的转换器类型UITypeEditor
。作为一个例子,请看一下演练:实现UI类型编辑器https://stackoverflow.com/questions/40100767
复制相似问题