【问题标题】:Form background color or image stuck as white表单背景颜色或图像卡为白色
【发布时间】:2011-04-15 09:42:35
【问题描述】:

我一周前开始自学 C#。我开始写俄罗斯方块来熟悉这门语言。我通过在预定大小的位图上绘画并将其显示在一个图片框中来获得主要的游戏机制,当时它与窗口的大小相同。现在我已经扩大了窗口大小并开始在图片框的一侧添加其他控件。

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

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

我不知道如何解决这个问题;有人有什么想法吗?

编辑:
我找到了我的问题的答案。在我的构造函数中调用了 SetStyle(ControlStyles.Opaque, true)。我不确定这到底是做什么的,但我将其注释掉并解决了我的问题。

【问题讨论】:

    标签: c# winforms forms background backcolor


    【解决方案1】:

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

    在我阅读了你的问题之后。以下是我的理解。

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

    • 利用拆分容器,即 在工具箱中可用 “容器”组。

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

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

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

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

    • 其实背景颜色问题来了,如果表单是Mdi Container。

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

    • 以下代码块将 Mdi Forms 的背景色设置为表单的背景色。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 2010-11-22
        • 2015-07-28
        • 1970-01-01
        • 1970-01-01
        • 2019-12-13
        相关资源
        最近更新 更多