窗体可以用作用户控件吗?

本文关键字:控件 用户 作用 窗体 | 更新日期: 2023-09-27 18:12:12

我需要做一个UserControl,可以用于多个项目。但是它需要是一个表单,这样用户就可以添加一个对库的引用并调用表单。

我看到像Telerik和DevExpress这样的第三方公司使用可以添加到项目中的自定义表单。

我该如何做到这一点?我一直在看谷歌的SO和各种帖子,但我的搜索没有成功。

EDIT我假设它必须是一个UserControl出于某种原因。但事实并非如此。我建议只添加一个表单,并从该名称空间调用它。完全按照需要工作。谢谢所有人。

窗体可以用作用户控件吗?

只需在库中创建表单,将其设置为公共,并且可以从任何地方调用它。

创建和调用表单的方法:

YourFormClassName FormForUser = new YourFormClassName();
FormForUser.Show();
FormForUser.ShowDialog();

也许我不明白。如果我这样做,那么它是直接的。

  1. 在你的解决方案中添加一个项目(ProjectWithReusedForm),其中包含要重用的表单。
  2. 在第二个项目中添加对ProjectWithReusedForm的引用,在这个项目中你想使用
  3. 添加一个'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将提供更多的灵活性,因为它们可以添加到现有的页面。