我怎样才能改变在C#中的MDI窗体的背景颜色?
我改变了它使用的背景颜色属性,但颜色不会改变。
我应该怎么做来执行这项任务?
我怎样才能改变在C#中的MDI窗体的背景颜色?
我改变了它使用的背景颜色属性,但颜色不会改变。
我应该怎么做来执行这项任务?
在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;
}
}
编辑-添加评论:
我们需要通过控制回路中的MdiParent形式发现,当你设置的形式是那的MdiParent被添加的MDICLIENT控制。 的foreach是通过集合类型的只是一个简单的迭代。
我们需要找到这样的表格中的MDICLIENT控制,所以要做到这一点,我们使用“作为”关键字投下循环内的电流控制。 使用“为”关键字意味着,如果中投是无效的,那么变量被设置为null。 因此,我们检查,看看是否“客户”为空。 如果是,在回路中的电流控制是不是MDICLIENT控制。 只要变量“客户”不为空,那么我们有保持的控制是MDICLIENT,我们可以设定它的背景色。
设置backcolour到你想要的任何东西。 只需更换 “GetYourColour()” 与任何你想要的颜色,即Color.White,Color.Blue,Colour.FromArgb(等)...
由于只有1过MDICLIENT,有没有点继续环路,它只是一个处理时间的浪费。 因此,我们所说的“破”退出循环。
让我知道如果你想别的解释。
在MDI的形式作为负载的方法写这篇文章。
Controls.OfType<MdiClient>().FirstOrDefault().BackColor = Color.Purple;