微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

出现在父表单控件下方的子表单

如何解决出现在父表单控件下方的子表单

我有一个 C#、.net、Windows 窗体应用程序。我有一个表单设置为 MDI 容器,我可以在其中动态添加按钮。单击按钮会打开一个子窗体。但是,我创建的按钮出现在子窗体的顶部,而不是子窗体出现在(并覆盖)父窗体上的所有内容之上。我做错了什么?

以下是我将按钮添加到表单的方法

            Button btn1 = new Button();
            btn1.BackColor = ColorTranslator.FromHtml("#456EA4");
            btn1.Text = department.DepartmentName;
            btn1.Location = new System.Drawing.Point(posX,posY);
            btn1.Size = new System.Drawing.Size(sizeX,sizeY);
            btn1.Font = new System.Drawing.Font("Calibri",40F,System.Drawing.FontStyle.Regular,system.drawing.graphicsUnit.Point,((byte)(0)));
            btn1.ForeColor = Color.WhiteSmoke;
            btn1.TabStop = false;
            this.Controls.Add(btn1);

这是我打开子表单的位置:

        frmToBuildFromSchedule frmToBuild = new frmToBuildFromSchedule(department);
        frmToBuild.FormClosed += new FormClosedEventHandler(frmToBuildFromSchedule_FormClosed);
        frmToBuild.MdiParent = this;
        frmToBuild.Show();

结果如下:

enter image description here

解决方法

您将按钮直接放在父 MDI 窗体上,这不是 MDI 样式应用程序的典型特征。相反,将当前在按钮单击事件中的代码放在菜单选项或功能区按钮中(它们也可以动态创建)。 或者,创建一个子窗体,将其最大化,然后将按钮放在其上。

,

我认为 Microsoft Store submission API 在发布的重复链接上的回答很有趣。不要使用 sam,而是设置 MDI 并将 form.TopLevel = false; 添加为子控件。我不确定这种方法是否有任何缺点。

form

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。