【问题标题】:Setting A Form's backColor to a ARGB value将表单的背景颜色设置为 ARGB 值
【发布时间】:2018-07-13 06:20:30
【问题描述】:

我一直在研究一个简单的 HEX 到 RGB(反之亦然)的转换器。本质上,用户可以输入十六进制值作为字符串,上面的文本框将显示转换。除此之外,我希望表单的背景更改为相应的颜色输入 - 尽管这是问题所在。背景颜色不会改变。

为此,我有这个

        Color rgbValue = Color.FromArgb(red, green, blue);
        String conversion = rgbValue.ToString();

        Form converterForm = new Form();
        converterForm.BackColor = rgbValue;

        RGB_Box.Text = String.Format("rgb({0},{1},{2})", red, green, blue);

我已经使用 #E9967A 的固定十六进制输入逐步完成了代码;变量的值如下:蓝色(122),绿色(150),红色(233)。 converterForm.BackColor 的值为“Name=ffe9967a, ARGB=(255,233,150,122)”。

有没有办法修改 BackColor 的值,以便正确解释颜色?

【问题讨论】:

  • 您从不显示converterFormconverterForm.Show(); 那么如何判断颜色是否没有变化?
  • @Equalsk 这样做会创建一个新表单(即显示两个),但是新表单具有正确的背景颜色。
  • 如果你想改变现有的形式然后改变this.BackColor
  • @Equalsk 很有趣 - 这很有效。你能写下你的评论作为答案,我会标记它吗?进一步的解释将不胜感激,我不确定为什么这会比以前更有效。谢谢:)
  • @LukeIsitt:您正在创建一个新表单,更改其背景,然后忽略它。你为什么期望它做任何事情?

标签: c# winforms hex rgb


【解决方案1】:

您应该更多地阅读 C# 和面向对象编程,以充分了解正在发生的事情。

简而言之,当您使用 new 关键字时,您会创建一个全新的表单,与您已有的表单分开。你改变了第二个表单的颜色并且从不显示它,所以它当然看起来什么也没发生。

this 关键字指定表单的现有实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 2019-07-27
    • 2013-02-09
    相关资源
    最近更新 更多