我真的是编程的新手,所以如果我的知识看起来真的不合适,请原谅。我正在为我的学校做一个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;
}
}
答案 0 :(得分:1)
问题在于这一行:
frm2.BackColor = Color.FromArgb(i*color);
由于您的i
变量为0(零),因此生成的颜色是透明的,您获得的确切异常消息应如下所示:
未处理的类型' System.ArgumentException'发生在System.Windows.Forms.dll
中其他信息:Control不支持透明背景颜色。
要修复它,请更正i
和color
个变量的逻辑并使用以下内容:
frm2.BackColor = Color.FromArgb(255, Color.FromArgb(i * color));
从生成的颜色中删除透明度 - 请参阅Color.FromArgb Method (Int32, Color)。