首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在winform中嵌入winform (c#)

在winform中嵌入winform (c#)
EN

Stack Overflow用户
提问于 2008-11-19 11:58:44
回答 6查看 24.1K关注 0票数 15

是否可以将一个windows窗体嵌入到另一个windows窗体中?

我已经在Visual Studio中创建了一个windows窗体以及它的所有相关行为。

现在,我想创建另一个包含选项卡视图的windows窗体,并将第一个windows窗体嵌入到选项卡视图中。这个是可能的吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-11-19 12:02:05

不是直接的。您可以创建一个用户控件,将窗体中的所有代码移动到该用户控件中,然后在两个窗体中使用该控件。您可能需要更改表单中的一些代码,但可能不会太多。

票数 13
EN

Stack Overflow用户

发布于 2009-05-21 14:57:46

免责声明

这将会工作,因为我在我的应用程序中广泛使用它。这就是说,我会选择用户控制路线,因为这取决于你把嵌入的东西放到什么程度上。仅供参考

是的,这是可能的。这是如何实现的:

代码语言:javascript
复制
public static void ShowFormInContainerControl(Control ctl, Form frm)
{
    frm.TopLevel = false;
    frm.FormBorderStyle = FormBorderStyle.None;
    frm.Dock = DockStyle.Fill;
    frm.Visible = true;
    ctl.Controls.Add(frm);
}

我把它放在一个类库中,然后从我想要嵌入的表单中这样调用它。

代码语言:javascript
复制
public FrmCaseNotes FrmCaseNotes;
FrmCaseNotes = new FrmCaseNotes();
WinFormCustomHandling.ShowFormInContainerControl(tpgCaseNotes, FrmCaseNotes);

其中tpgCaseNotes是我想要嵌入Form FrmCaseNotes的控件。

在本例中,我调用的表单上有一个选项卡页。

票数 20
EN

Stack Overflow用户

发布于 2008-11-19 13:05:39

实现这一点的方法是使用用户控件而不是窗体。这就是用户控件的用途。这种技术可以用于相当多的用户界面技巧,例如向导(控件可以在向导和应用程序的其他部分之间共享)、资源管理器风格的浏览器(具有树形控件)以及基于所选节点交换的控件。

我在应用程序架构方面做了相当多的工作,这些应用程序架构将用户控件用于所有内容,并将框架用于资源管理器、向导和其他类型的表单(甚至回到VB6)。作为一种方法,它工作得很好。

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

https://stackoverflow.com/questions/301678

复制
相关文章

相似问题

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