形成背景颜色或图像被困为白色

时间:2011-04-15 09:42:35

标签: c# winforms forms background backcolor

我一周前开始自学C#。我开始写“俄罗斯方块”,让自己熟悉这门语言。我让主要的游戏机制通过绘制到预先设定的位图并将其显示在图片框中来工作,该图片框当时与窗口的大小相同。现在我扩展了窗口大小并开始在图片框的侧面添加其他控件。

问题是,现在我已经扩展了窗口,显示了表单背景,背景颜色是永久白色的,或者我在底角有一个奇怪的白色到黑色褪色的外观。

我尝试了几件事:
- 手动设置背景颜色,但它仅反映在标签上
- 检查transparentkey是否为空
- 将transparencykey设置为未使用的颜色,没有任何变化
- 添加bmp作为表单的背景图像,仍然保持白色 - 检查我的代码,看看我是否每次都直接写入表单背景

我无法弄清楚如何解决这个问题;有没有人有任何想法?

编辑:
我找到了问题的答案。在我的构造函数中调用了SetStyle(ControlStyles.Opaque,true)。我不确定究竟是做什么的,但我对它进行了评论并解决了我的问题。

2 个答案:

答案 0 :(得分:1)

请列出要求意味着您需要什么?

我读完你的问题后。以下是我的理解。

如果问题在于更改窗口大小,那么

  • 使用 拆分容器 ,即 可在工具箱中找到 '容器'组。

  • Dock 属性设置为填充 如果填写整个窗口 调整大小/最大。

  • 然后使用右侧窗格包含您的图片框,并使用左侧窗格显示其他控件。

  • 如果需要,您也可以设置图片框的dock属性以填充其父容器意味着右窗格。

如果您的问题是窗口的背景颜色,那么

  • 实际上是背景颜色问题,如果表单是Mdi容器。

  • 检查 IsMdiContainer 属性是否设置为false。如果是,则为MdiContainer。

  • 以下代码块将Mdi Forms的backcolor设置为表单'backcolor。

    foreach (Control c in this.Controls)
    {
        if (c is MdiClient)
        {
            c.BackColor = this.BackColor;
        }
    }
    

答案 1 :(得分:0)

我找到了问题的答案。在我的初始化中调用了SetStyle(ControlStyles.Opaque,true)。我不确定究竟是什么,但这是我背景颜色问题的原因。