【发布时间】:2009-04-01 16:31:03
【问题描述】:
我有一个 .NET 3.5 windows 窗体,我想将它嵌入到另一个窗体中。有没有一种快速的方法可以将该表单转换为控件?
谢谢
【问题讨论】:
标签: .net winforms visual-studio-2008
我有一个 .NET 3.5 windows 窗体,我想将它嵌入到另一个窗体中。有没有一种快速的方法可以将该表单转换为控件?
谢谢
【问题讨论】:
标签: .net winforms visual-studio-2008
将表单更改为从 UserControl 继承而不是 Form,然后修复所有编译错误。
【讨论】:
Public Class TimeSheetGrid,没有明确的Inherits。
还有一种方法可以在控件中嵌入表单:这是 VB 中的代码:
Public Shared Sub ShowFormInControl(ByRef ctl As Control, ByRef frm As Form)
If ctl IsNot Nothing AndAlso frm IsNot Nothing Then
frm.TopLevel = False
frm.FormBorderStyle = FormBorderStyle.None
frm.Dock = DockStyle.Fill
frm.Visible = True
ctl.Controls.Add(frm)
End If
End Sub
我想我是从 SO 上的另一篇文章中获得此代码的,但我不记得在哪里,如果这是您的代码 sn-p,请见谅!
【讨论】:
我使用了@Neil Barnwell 的解决方案,并进行了补充。 我手动编辑了 .vbprog 文件并将表单的“SubType”更改为“UserControl”:
<SubType>UserControl</SubType>
这允许项目资源管理器中的图标显示为用户控件,而不是表单。
【讨论】:
并不是说你现在应该这样做,但将来你可以看看MEF。它是一个(除其他外)构建复合应用程序的框架,听起来可能是您想要实现的目标。
【讨论】: