System.Windows.Forms.dll中发生未处理的“System.ArgumentException”类型异常

时间:2016-04-14 19:42:30

标签: c# windows forms backcolor

我真的是编程的新手,所以如果我的知识看起来真的不合适,请原谅。我正在为我的学校做一个C#项目,我的作业有问题,谢谢

这里有一些代码:

using System;
using System.Drawing;


private void button1_Click(object sender, EventArgs e)
{
    child frm2 = new child();
    frm2.ShowDialog();


    int color = 0;
    int i = 0;
    Random rnd = new Random();
    i = rnd.Next(51);

    frm2.BackColor = Color.FromArgb(i*color);
    frm2.ShowDialog();
    if (color == 5)
    {
        color = 0;
    }
}

1 个答案:

答案 0 :(得分:1)

问题在于这一行:

frm2.BackColor = Color.FromArgb(i*color);

由于您的i变量为0(零),因此生成的颜色是透明的,您获得的确切异常消息应如下所示:

  

未处理的类型' System.ArgumentException'发生在System.Windows.Forms.dll

中      

其他信息:Control不支持透明背景颜色。

要修复它,请更正icolor个变量的逻辑并使用以下内容:

frm2.BackColor = Color.FromArgb(255, Color.FromArgb(i * color));

从生成的颜色中删除透明度 - 请参阅Color.FromArgb Method (Int32, Color)