c# - 如何通过运行时嵌入表单切换来实现a-form-inside-a-form?

标签 c# .net winforms

我需要通过手动(例如在事件上、在按钮单击上)页面切换来实现类似 TabControl 的行为,并将所有页面设计和实现为单独的表单。要合并(作为面板控件)到主窗体中并根据需要由另一个窗体替换的窗体。

如何实现这一目标?

PS:我不想使用 TabControl 的原因是因为选项卡太多 - 我更愿意将它们的列表呈现为 TreeView 并按需实例化。另一个原因来 self 的另一个项目 - 我将在那里实现插件,其中主窗口内的面板将由动态加载的类提供,并且可以在运行时切换。

最佳答案

I need to implement TabControl-like behaviour with manual (on event, on a button click for example) pages switching and having all pages designed and implemented as separate forms

请问为什么这是一个要求?看起来合乎逻辑的方法是创建一组用户控件。您可以将 UserControl 放置在表单中,也可以将 UserControl 放置在选项卡中。您可以获得模块化,而无需为实现一个非常奇怪的需求而烦恼,这是一个 API 开发人员显然认为无效的用例。我只是想不出采取您建议的路线的充分理由。

关于c# - 如何通过运行时嵌入表单切换来实现a-form-inside-a-form?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4998567/

相关文章:

c# - LINQ Lambda 与查询语法性能

c# - ASP.NET MVC (Razor) 与 Angular 5

c# - 将方法中的代码限制为仅调用同一类中的成员

c# - OData 中的实体继承

c# - 检查目标计算机上安装的 websphere mq?

c# - Windows窗体旋转

c# - 没有 setter 的模拟对象

c# - 字符串变量可以设置多少个字符?

python - 模拟将 UUID 编码为 Base64

c# - 为什么在单元测试中实例化ListView时SelectedIndices和SelectedItems不起作用?