C#TableLayoutPanel.BackColor保持重置

时间:2011-10-05 19:39:05

标签: c# winforms

在Windows窗体上使用 System.Windows.Forms.TableLayoutPanel 控件时,它也会设置背景颜色: 216,216,216 ,即使我们将颜色更改为其他颜色,颜色似乎总是重置为 216,216,216

它在运行时完成,甚至在设计时也是如此。在设计期间,您可以更改颜色,并重新设置颜色更改,但如果您从表单设计器切换回原来,则会重置为 216,216,216 。< / p>

这是一个已知问题,或者我们如何避免这个问题?

注意:我们使用的是一个空白项目,使用.NET Framework 4(非客户端框架)的单表布局。

我们正在使用

  • Microsoft Visual Studio 2010
  • 版本10.0.30319.1 RTMRel
  • Microsoft .NET Framework版本4.0.30319 RTMRel
  • 已安装版本:Ultimate

C#详情

  • Microsoft Visual C#2010 01019-532-2002102-70826
  • Microsoft Visual C#2010

4 个答案:

答案 0 :(得分:1)

我在其中一个项目中遇到了同样的问题。

我们通过继承MetroForm类并在OnLoad事件中添加一个函数来解决它,以循环遍历Panel类型的所有后代控件并更改BackColor属性。

示例:

public class CustomMetroForm : MetroForm
{
    public CustomMetroForm()
    {
        this.Load += this.OnLoad;
    }

    public virtual void OnLoad(object sender, EventArgs eventArgs)
    {
        foreach (var descendant in this.Descendants<Panel>().Where(x => x.BackColor == Color.FromArgb(255, 216, 216, 216)))
        {
            descendant.BackColor = Color.White;
        }
    }
}

public static class ControlExtensions
{
    public static IEnumerable<T> Descendants<T>(this Control control) where T : class 
    { 
        foreach (Control child in control.Controls) 
        { 
            var childOfT = child as T; 

            if (childOfT != null) 
            { 
                yield return childOfT; 
            }

            if (child.HasChildren) 
            { 
                foreach (var descendant in Descendants<T>(child)) 
                { 
                    yield return descendant; 
                } 
            } 
        } 
    }
}

希望他们能尽快解决这个问题(从v10.4.0.2开始就没有修复)

答案 1 :(得分:0)

我对tablelayoutpanel没有这样的问题。但是对于您可以遵循的简短(可能是脏)方式,更改表单加载中的颜色值。它肯定会起作用。

答案 2 :(得分:0)

问题是由DevComponents套件内的Metro组件引起的。将表格布局添加到启用Metro的表单上的任何内容时,表格布局颜色将重置为样式管理员想要的任何内容,无论您将其设置为什么。

已经与开发人员打开了一个问题,看看是否可以修复,他们建议截至2011年10月21日,他们正在研究如何覆盖该问题。

答案 3 :(得分:0)

观察到的行为是设计的,样式改变了儿童控件的环境颜色,因此可以实现统一的外观和感觉。如果某些控件需要免除,请在此处说明如何完成:http://www.devcomponents.com/kb2/?p=1160#ambient

相关问题