MDI窗体的变化背景(Change Background of an MDI Form)

2019-06-25 03:46发布

我怎样才能改变在C#中的MDI窗体的背景颜色?

我改变了它使用的背景颜色属性,但颜色不会改变。

我应该怎么做来执行这项任务?

Answer 1:

在MDI控制的实际背景色是基于Windows的当前主题颜色。 你必须物理安装在WinForm里面MDICLIENT控制的背景。

    // #1
    foreach (Control control in this.Controls)
    {
        // #2
        MdiClient client = control as MdiClient;
        if (!(client == null))
        {
            // #3
            client.BackColor = GetYourColour();
            // 4#
            break;
        }
    }

编辑-添加评论:

  1. 我们需要通过控制回路中的MdiParent形式发现,当你设置的形式是那的MdiParent被添加的MDICLIENT控制。 的foreach是通过集合类型的只是一个简单的迭代。

  2. 我们需要找到这样的表格中的MDICLIENT控制,所以要做到这一点,我们使用“作为”关键字投下循环内的电流控制。 使用“为”关键字意味着,如果中投是无效的,那么变量被设置为null。 因此,我们检查,看看是否“客户”为空。 如果是,在回路中的电流控制是不是MDICLIENT控制。 只要变量“客户”不为空,那么我们有保持的控制是MDICLIENT,我们可以设定它的背景色。

  3. 设置backcolour到你想要的任何东西。 只需更换 “GetYourColour()” 与任何你想要的颜色,即Color.White,Color.Blue,Colour.FromArgb(等)...

  4. 由于只有1过MDICLIENT,有没有点继续环路,它只是一个处理时间的浪费。 因此,我们所说的“破”退出循环。

让我知道如果你想别的解释。



Answer 2:

在MDI的形式作为负载的方法写这篇文章。

Controls.OfType<MdiClient>().FirstOrDefault().BackColor = Color.Purple;


文章来源: Change Background of an MDI Form