在Winforms中设计时间扩展属性

时间:2012-01-16 10:26:35

标签: winforms .net-3.5 design-time

我已经为我们正在构建的触控式应用构建了几个键盘。由于我们使用的控制器知道应用程序处于触摸屏模式的时候,我认为如果在设计模式下我们可以将控件与键盘类型相关联并让控制器在键盘调用之后看起来会很好。

我不想做的事情之一就是为每个类型的控件提供子类只是为了添加这个属性,因为我认为它对于小增益是非常重的。我曾考虑使用tag属性,但由于使用它在所有控件中都不可用。

我想知道是否有一种方法可以在设计时将属性附加到控件上,以便添加此元数据。所以回顾一下,我希望能够为每个控件赋予一个值,控制器可以读取该值来决定要显示的键盘。

1 个答案:

答案 0 :(得分:2)

是的,设计师支持这一点。执行此操作的现有组件的良好示例是ErrorProvider和HelpProvider。请注意它们如何向现有控件类型添加属性。

您需要实现自己的组件,它需要实现IExtenderProvider接口。它的MSDN Library article有一个很好的例子可以帮助你做正确的事。