所以,我正在尝试创建一个函数,使某个标签从颜色列表中变成随机颜色。这是我现在的代码:
ArrayList colors = new ArrayList();
colors.Add(Color.Black);
Random rColor = new Random();
var randomColor = rColor.Next(0, colors.Count);
colorTextLabel.ForeColor = randomColor;
但它只是在代码的最后一行返回一个错误,说"不能隐式转换类型' int'到' System.Drawing.Color'"
这是怎么做到的?
答案 0 :(得分:3)
您需要获取随机索引处的项目,目前您正在尝试将int分配给颜色:
colorTextLabel.ForeColor = (Color)colors[randomColor];
在使用generics时不要使用ArrayList
。
答案 1 :(得分:0)
尝试这样做:
var colours =
typeof(System.Drawing.Color)
.GetProperties()
.Where(x => x.PropertyType == typeof(System.Drawing.Color))
.Select(x => x.Name)
.ToArray();
colorTextLabel.ForeColor =
System.Drawing.Color.FromName(colours[rColour.Next(0, colours.Length)]);