窗体可以用作用户控件吗?
本文关键字:控件 用户 作用 窗体 | 更新日期: 2023-09-27 18:12:12
我需要做一个UserControl,可以用于多个项目。但是它需要是一个表单,这样用户就可以添加一个对库的引用并调用表单。
我看到像Telerik和DevExpress这样的第三方公司使用可以添加到项目中的自定义表单。
我该如何做到这一点?我一直在看谷歌的SO和各种帖子,但我的搜索没有成功。
EDIT我假设它必须是一个UserControl出于某种原因。但事实并非如此。我建议只添加一个表单,并从该名称空间调用它。完全按照需要工作。谢谢所有人。
只需在库中创建表单,将其设置为公共,并且可以从任何地方调用它。
创建和调用表单的方法:
YourFormClassName FormForUser = new YourFormClassName();
FormForUser.Show();
FormForUser.ShowDialog();
也许我不明白。如果我这样做,那么它是直接的。
- 在你的解决方案中添加一个项目(ProjectWithReusedForm),其中包含要重用的表单。
- 在第二个项目中添加对ProjectWithReusedForm的引用,在这个项目中你想使用
- 添加一个'using ProjectWithReusedFormNamespace'到你想要使用表单的代码
你可以添加语句ReusedForm myForm = new ReusedForm();
您可以创建BaseForm
(通过添加.cs
文件或引用编译类库将其直接添加到项目中)。然后只需添加一个新表单到项目
namespace MySolution
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
将Form
变为BaseForm
public partial class Form1 : BaseForm
创建包含所有控件的表单。并创建空用户控件
,
在初始化函数
之后在usercontrol构造函数中执行此代码dim obja as new RegForm()
obja.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
obja.Visible = true
obja.Dock = System.Windows.Forms.DockStyle.Full
me.Controls.Add(obja)
你在这里一定要小心。你的标签列出了winforms,所以我假设你正在使用。net和UserControls。Winforms只允许每个页面有一个表单。您可以向一个页面添加多个UserControls。如果您使用基本表单路线,程序员将不得不将其他所有内容添加到您的基本页面。UserControls将提供更多的灵活性,因为它们可以添加到现有的页面。