在java swing中,我可以将面板插入到面板中等等,而不必为我的应用程序的每个视图构建一个全新的窗口,也不必费力地删除和添加控件。
在C#中有一个panel类,但是我看不到任何创建'panel form‘方法,或者基本上只是在form designer中创建一个包含面板及其内容的表单。
那么,我该如何做到这一点,并像我在java swing中那样工作呢?
发布于 2009-03-04 15:20:14
通常,我只是将不同的窗体停靠在其他窗体中,在父窗口上将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);这允许我将一些表单创建工作委托给不同的设计者。它对我来说就像是一种魅力,如果有更好的方法的话,我很想听听。
发布于 2009-03-04 15:19:34
实际上,您可以使用面板控件并将其Dock属性设置为Fill。这样,您的面板将是表单的整个画布。然后,您可以根据需要通过代码隐藏或窗体设计器添加子面板。
发布于 2009-06-04 13:36:46
用户控件的概念基本上为你提供了一个类似设计器界面的面板,更不用说你可以创建原子表单(可以重用),并将它们注册为可继承的,这样你也可以提供继承。
https://stackoverflow.com/questions/610962
复制相似问题