1

我的应用程序有一个主表单,它是所有 MDIChild 表单的父表单。它有自己很酷的小背景。

在此处输入图像描述

我想在主窗体上有 4 个按钮,它们在 MDI 容器中加载不同的窗体。我的表单是透明的,所以我为我的图片框按钮所做的所有小设计都很好地与主表单重叠,直到当您将 IsMDIContainer 属性设置为 true 时,Visual Studio 将那个愚蠢的背景涂成灰色。按钮现在有灰点(因为它们是透明的,就像它渗入背景图像并进入 MDI 容器的灰点一样)。

我已经用谷歌搜索了几个小时,没有人回答。我希望按钮对 Main Forms BG Image 透明,而不是灰色 MDIContainer BG。

使用 VS2019、VB.NET 上图显示了带有背景的 Form1 和带有所有控件的叠加的 Form 5。我希望底部的 2 个云状按钮(应该在父窗体 1 上)周围没有那个灰色框,但对 Form1 背景图像是透明的。

4

1 回答 1

0

首先,您可以在 mdi 父加载事件下使用此代码:

For Each ctl As Control In Me.Controls
    If TypeOf ctl Is MdiClient Then
        ctl.BackColor = Me.BackColor
    End If
Next ctl

但它仅在您将纯色(例如,仅红色或橙色或任何其他颜色)设置为此 mdi 父窗体的背景色时才有效,但不适用于图像。

您必须知道 mdi 父表单旨在仅显示子表单,因此,如果您想要表单的背景图像,只需使用常规表单,然后向其添加一个或多个面板,而不是您的 mdi 子表单,这将执行同样的工作加上启用控制透明度。

供您参考,mdi 子表单是一种非常古老的技术,如今很少使用。

于 2020-07-01T23:11:25.370 回答