表单可以用作用户控件吗?

时间:2013-05-03 13:42:51

标签: c# winforms user-controls

我需要创建一个可用于多个项目的UserControl。但它必须是一个Form,因此用户只需添加对库的引用并调用表单。

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

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

编辑我假设它出于某种原因必须是UserControl。但事实并非如此。我接受了添加表单并从该命名空间调用它的建议。完全按照需要工作。谢谢大家。

5 个答案:

答案 0 :(得分:2)

只需在您的图书馆中创建表单,将其公开,然后您就可以从任何地方调用它。

创建和调用表单的方法是:

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

答案 1 :(得分:0)

也许我不明白。如果我这样做,那就直接了。

  1. 将项目(ProjectWithReusedForm)添加到包含要重用的表单的解决方案中。
  2. 在要使用表单
  3. 的第二个项目中添加对ProjectWithReusedForm的引用
  4. 使用ProjectWithReusedFormNamespace'添加'到您要使用表单的代码
  5. 然后,您可以添加语句ReusedForm myForm = new ReusedForm();

答案 2 :(得分:0)

只需使用所有控件创建表单。并创建空用户控件

例如:

在初始化函数

之后在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)

答案 3 :(得分:0)

您可以创建BaseForm(通过添加.cs文件直接将其添加到项目中,或者引用编译的内容 - 类库示例)。然后只需将新表单添加到项目

namespace MySolution
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }
}

并将Form变为BaseForm

    public partial class Form1 : BaseForm

答案 4 :(得分:0)

你必须要小心。你的标签列出了winforms,所以我假设你使用的是.net和UserControls。 Winforms只允许每页一个表单。您可以向页面添加多个UserControl。如果您使用基本表单路由,程序员将不得不将其他所有内容添加到您的基页。 UserControls将提供更多灵活性,因为它们可以添加到现有页面中。