C#winform,如何创建表单ContainerControl?

时间:2016-05-06 15:07:46

标签: c# .net forms winforms

最近我一直在研究如何进行自己的控制。我在过去(2天前)曾询问过我所遇到的Tab Control问题。那么现在我想创建一个ContainerControl。类似于MetroFramework中的表单,因为我想开发自己的自定义外观表单。这很公平,这就是我对表格的看法。

Form Picture

现在我遇到的问题是这是在表单内部进行的。没有一个ContainerControl,我只需输入一行代码,我的表单看起来就像那样。在这个解决方案中,我需要键入大约30行。因此,当我的意思是容器控件时,你可以在form.cs编码中更改表单对象,它将改变表单的设计。

地铁框架示例。

public partial class Form1 : MetroFramework.Forms.MetroForm

现在,如果我想创建一个像图片中那样的自定义表单。我不想为每个表单添加30-50行代码。我只想创建一个表单类,然后添加“MetroFramework.Forms.MetroForm”的位置,并将其替换为我的表单。例如

public partial class Form1 : MyFormExampleNamespace.MyForm

这就是常规c#winform类结构的样子

public partial class Form1 : Form

所以现在我解释了我想要的东西,定义我认为形式ContainerControl是什么,以及我想要什么。我怎么能完成我的目标?我如何制作ContainerControl。这是我之前尝试过的事情

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GoatUserControls
{

public class GoatForm : Form
{

    public GoatForm()
    {
        this.FormBorderStyle = FormBorderStyle.Fixed3D;
        base.FormBorderStyle = FormBorderStyle.Fixed3D;
    }

    private void InitializeComponent()
    {
        this.SuspendLayout();
        // 
        // GoatForm
        // 
        this.ClientSize = new System.Drawing.Size(284, 261);
        this.Name = "GoatForm";
        this.Load += new System.EventHandler(this.GoatForm_Load);
        this.ResumeLayout(false);

    }

    private void GoatForm_Load(object sender, EventArgs e)
    {

    }

    //protected override BorderStyle()
    //  {

    //  }

}

}

这就是我的主要形式

public partial class Form1 : GoatUserControls.GoatForm

那么我如何创建一个表单ContainerControl?

0 个答案:

没有答案