微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – Visual Studio – 可以将控件添加到设计器中基于面板的用户控件吗?

参见英文答案 > How to enable design support in a custom control?                                    1个
Visual Studio 2010的新功能,但使用其他平台进行Windows开发已超过10年.我已经在其他平台上完成了以下操作,例如Visual FoxPro,但它似乎不适用于VS …

我创建了一个用户控件,其中包含一个包含几个标签和几个按钮的面板.当我创建一个新表单(WinForm)并将此用户控件放到表单上时,我无法向该面板添加其他控件.用户控件在文档大纲中显示为单个项目(紫色齿轮图标),无法访问面板或面板中包含的控件.

这是否是对用户控件的不当使用?在这个应用程序中,我将有许多面板,其中包含相同的按钮和标签以及其他控件的独特组合.使用户控件提供面板并包含常用的控件似乎很自然,然后只需插入设计器中面板的各种实例所独有的控件.如果我必须从基本控件构建设计器中的所有面板,我会,但我希望使用看似明显的OOP过程.

解决方法

如果您不是从UserControl继承而是从Panel继承您的控件仍然是一个Panel,您可以在其上添加子控件.

注意事项:

1)控件本身添加的子控件被许多Panel方法和getter视为子控件(它们不会自动隐藏).我从没试过这个.但是从子类化表单中继承Form和派生用户表单可以正常工作.并且WinForms Designer优雅地将继承的子元素显示为不可修改的元素.

2)在Panel派生类中,首选覆盖OnXxx()方法对Panel事件执行内部操作,而不是将处理程序附加到Xxx事件:这将允许您通过在附加处理程序之前或之后放置代码来决定是否应在附加处理程序之前或之后执行对base.OnXxx的调用(发件人,e);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐