she*_*tal 11 c# mdi visual-studio winforms
如何在C#中更改MDI FORM的BACKGROUND颜色?
我使用背景颜色属性更改了它,但颜色没有改变.
我该怎么做才能完成这项任务?
djd*_*d87 26
MDI控件的实际BackGround颜色基于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;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑 - 添加评论:
我们需要遍历MdiParent表单中的控件以查找在将Form设置为MdiParent时添加的MdiClient控件.Foreach只是通过集合的类型的简单迭代.
我们需要在表单中找到MdiClient控件,因此为了做到这一点,我们使用'as'关键字在循环中转换当前控件.使用'as'关键字意味着如果强制转换无效,则设置的变量将为null.因此,我们检查'client'是否为null.如果是,则循环中的当前控件不是MdiClient控件.一旦变量'client'不为null,那么我们掌握的控件就是MdiClient,我们可以设置它的背景颜色.
将背景颜色设置为您想要的任何颜色.只需将"GetYourColour()"替换为您想要的任何颜色,即Color.White,Color.Blue,Colour.FromArgb(等)......
因为只有1个MdiClient,所以没有必要继续循环,因为它只是浪费处理时间.因此我们称'break'退出循环.
如果您想要其他任何解释,请告诉我.
小智 15
将此写入 MDI 表单的加载方法中。
Controls.OfType<MdiClient>().FirstOrDefault().BackColor = Color.Purple;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25204 次 |
| 最近记录: |