在 java swing 中,我可以将面板插入面板等,而不必为我的应用程序的每个视图构建一个全新的窗口,或者在删除和添加控件时弄乱。
有一个面板类 sin C# 但是我看不到任何创建“面板表单”的方法,或者基本上只是表单设计器中的一个表单,即面板及其内容。
那我该怎么做,并像使用 java swing 一样工作?
通常我只是将不同的表单停靠在彼此之间,在父窗口上将 IsMdiContainer 属性设置为 true。然后我使用以下函数创建我停靠的子表单:
static class FormUtil
{
static public void showForm(Form sender, Control reciever)
{
sender.ControlBox = false;
sender.FormBorderStyle = FormBorderStyle.None;
sender.ShowInTaskbar = false;
sender.TopLevel = false;
sender.Visible = true;
sender.Dock = DockStyle.Fill;
reciever.Controls.Clear(); //clear panel first
reciever.Controls.Add(sender);
}
}
然后,每当我需要将表单停靠在父表单的面板内时,我都会这样做:
FormUtil.showForm(new SomeForm(), this.splitContainer1.Panel1);
这允许我将一些表单创建委托给不同的设计师。对我来说就像一个魅力,喜欢听听是否有更好的方法。
实际上,您可以使用面板控件并将其 Dock 属性设置为 Fill。这样,您的面板将成为表单的整个画布。然后,您可以根据需要通过代码或表单设计器添加子面板。
用户控件的概念基本上为您提供了类似设计器表面的面板,更不用说您可以创建原子表单(可以重用)并将它们注册为可继承,这样您也可以提供继承。