winforms 面板与 java swing 面板

发布于 2024-07-14 10:44:38 字数 188 浏览 2 评论 0 原文

在 java swing 中,我可以将面板插入面板等,而不必为我的应用程序的每个视图构建一个全新的窗口,或者混乱地删除和添加控件。

C# 有一个面板类,但是我看不到任何创建“面板表单”的方法,或者基本上只是表单设计器中的一个表单,即面板及其内容。

那么我该如何做到这一点并像我在 java swing 中所做的那样工作呢?

In java swing I can insert panels into panels and so on, and not have to build a brand new window for every view of my applicaiton, or mess around removing and adding controls.

Theres a panel clas sin C# however I cant see any way of creating a 'panel form' or basically just a form in form designer thats a panel and its contents.

How do I do this then and work the way I did with java swing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

聚集的泪 2024-07-21 10:44:38

通常我只是将不同的表单停靠在彼此之间,将父窗口上的 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);

这允许我将一些窗体创建委托给不同的设计人员。 对我来说就像一个魅力,很想听听是否有更好的方法。

Usually i just dock different forms within eachother setting the IsMdiContainer Property to true on the parent window. Then i create subforms that i dock using the following function:

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);
    }

}

then whenever i need to dock a form inside a panel on the parents form i just do:

FormUtil.showForm(new SomeForm(), this.splitContainer1.Panel1);

This allows me to delegate some of the form creation to different designers. Works like a charm for me, love to hear if theres a better way of doing it.

ら栖息 2024-07-21 10:44:38

实际上,您可以使用面板控件并将其 Dock 属性设置为 Fill。 这样,您的面板将成为表单的整个画布。 然后,您可以根据需要通过代码隐藏或通过表单设计器添加子面板。

Actually, you can use the panel control and set it's Dock property to Fill. That way, your panel will be the entire canvas of the form. Then, you can add child panels as needed either through code behind or through forms designer.

猫瑾少女 2024-07-21 10:44:38

有一个用户控件的概念,它基本上为您提供了一个像设计器表面一样的面板,更不用说您可以创建原子表单(可以重用)并将它们注册为可继承,这样您也可以提供继承。

There's the concept of user controls which basicly provides you with a panel like designer surface , not to mention that you can create atomic forms (which can be reused) and register them as inheritable, that way you can provide inheritance too.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文