首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Winforms自定义UserControl上启用设计图面

在Winforms自定义UserControl上启用设计图面
EN

Stack Overflow用户
提问于 2010-01-13 20:53:17
回答 2查看 3.8K关注 0票数 2

我尝试在C#中创建一个自定义用户控件,用于处理添加到其中的其他控件。自定义控件由两个面板组成。我试图实现的是,如果在设计模式下将另一个控件拖到我的用户控件上(或在运行时以编程方式添加),我希望将该控件放在其中一个面板上。

我试图处理OnControlAdded事件,但这并没有起到作用...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-13 21:32:08

Markus写道:“如果在设计模式下将另一个控件拖到我的用户控件上(或在运行时以编程方式添加),我希望将该控件放在其中一个面板上。”

我将上面的解释解释为您希望设计时拖动的控件成为UserControl的两个内部面板之一的子控件:如果这种解释是错误的:请忽略以下内容:)

此外,为了避免混淆:当您观察到在设计时放置在窗体上的UserControl实例中的面板或其他“容器”控件不会像您预期的那样“消费”或“吞噬”控件时,您是完全正确的:事实上,您甚至不能单独选择它们:它们被添加到用户控件的ControlCollection中。

对您来说幸运的是,在设计时拖放的情况下,有一个很好的可靠的代码示例,您可以在CodeProject上学习和使用,由Henry Minute编写:Designing Nested Controls:那篇文章将向您展示如何从ParentControlDesigner继承,以便在设计时作为UserControl容器的子控件可以按照您所寻找的方式作为容器运行。

如果你想要在运行时(程序员)使用你的控件...假设他们没有源代码,所以他们像“黑盒”一样与你的UserControl交互,只能“看到”属性、方法、可用事件等,你已经公开了……控制添加的控件的放置位置:您需要决定希望使用者如何访问面板。您可以通过UserControl的公共属性将它们“直接”公开为对象,也可以仅公开一个用于为每个面板添加控件的公共方法。

票数 5
EN

Stack Overflow用户

发布于 2010-01-13 20:57:39

为什么不直接将它拖到面板中,或者给其中一个面板一个公共访问器,然后直接向该面板添加所有的编程操作呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2056703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档