在C#Designer中引用类常量?

时间:2014-08-04 16:26:54

标签: c# devexpress designer

我正在使用设计师来处理我正在进行的当前项目。我们通常做的一件事是在我们添加的每个控件上设置尽可能多的属性。我们使用设计师" Properties"窗口。这会导致在生成的.designer.cs文件中设置/管理所有这些设置,而不是我们必须使用我们的代码维护它们。

有一件事我发现自己总是想做,但我永远无法弄清楚如何去做,那就是从属性窗口引用常量。

例如,在我正在使用的SpinEdit中,我想将最大值设置为Decimal.MaxValue,但如果我只是在属性窗口中输入,那么我会收到错误。如何从设计器属性窗口引用此变量?

这是我想要做的事情的图片,以防更清楚:

Set property using constant

但是,一旦我尝试将图片中的文本框的焦点突出显示,尝试此操作会导致错误。但它在代码中运行良好,下面的行编译得很好,为什么我不能在设计器中做到这一点?:

alarmStationSpinEdit.Properties.MaxValue = Decimal.MaxValue;

编辑:显然我需要更明确地提出这个问题。我期待两个可能的答案中的一个。它们的格式为:

1)是的,这是可能的。你就是这样做的.....

2)不,那是不可能的。这就是为什么.....(最好是链接,因为我觉得很难相信)。

1 个答案:

答案 0 :(得分:1)

1)是的,如果您是组件开发人员,那是可能的。 Visual Studio属性网格允许您为组件属性指定自定义值转换器。这使得有机会将在属性网格中输入的字符串值转换为从常量读取的值。

TypeConverterAttribute属性用于将自定义类型转换器分配给属性。这是一篇详细的MSDN文章,其中的示例解释了类型转换器的用途以及可以使用的内容:Implement a Type Converter

2)不,如果您使用第三方组件并且此组件不支持为其属性分配常量值,则无法执行此操作。

默认情况下,Visual Studio属性网格按原样接受值。如果属性是十进制类型,则无法为其指定字符串。

通过属性网格分配的值不会被评估为C#或VB.NET表达式。 Visual Studio将其视为值。