是否可以将一个windows窗体嵌入到另一个windows窗体中?
我已经在Visual Studio中创建了一个windows窗体以及它的所有相关行为。
现在,我想创建另一个包含选项卡视图的windows窗体,并将第一个windows窗体嵌入到选项卡视图中。这个是可能的吗?
发布于 2008-11-19 12:02:05
不是直接的。您可以创建一个用户控件,将窗体中的所有代码移动到该用户控件中,然后在两个窗体中使用该控件。您可能需要更改表单中的一些代码,但可能不会太多。
发布于 2009-05-21 14:57:46
免责声明
这将会工作,因为我在我的应用程序中广泛使用它。这就是说,我会选择用户控制路线,因为这取决于你把嵌入的东西放到什么程度上。仅供参考
是的,这是可能的。这是如何实现的:
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);
}我把它放在一个类库中,然后从我想要嵌入的表单中这样调用它。
public FrmCaseNotes FrmCaseNotes;
FrmCaseNotes = new FrmCaseNotes();
WinFormCustomHandling.ShowFormInContainerControl(tpgCaseNotes, FrmCaseNotes);其中tpgCaseNotes是我想要嵌入Form FrmCaseNotes的控件。
在本例中,我调用的表单上有一个选项卡页。
发布于 2008-11-19 13:05:39
实现这一点的方法是使用用户控件而不是窗体。这就是用户控件的用途。这种技术可以用于相当多的用户界面技巧,例如向导(控件可以在向导和应用程序的其他部分之间共享)、资源管理器风格的浏览器(具有树形控件)以及基于所选节点交换的控件。
我在应用程序架构方面做了相当多的工作,这些应用程序架构将用户控件用于所有内容,并将框架用于资源管理器、向导和其他类型的表单(甚至回到VB6)。作为一种方法,它工作得很好。
https://stackoverflow.com/questions/301678
复制相似问题