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