5

リストに system.drwaing.color アイテムを入力して、ランダムな色を選択し、それを backColor に設定しようとしています。

これが私のコードです:

    List<Color> myList = new List<Color>();
    //rc.Add(Color.Chartreuse);
    //rc.Add(Color.DeepSkyBlue);
    //rc.Add(Color.MediumPurple);
    foreach (Color clr in System.Drawing.Color)
    {
      //error  
    }
    Random random = new Random();
    Color color = myList[random.Next(myList.Count - 1)];
    this.BackColor = color;

エラー: 'System.Drawing.Color' は 'type' であり、指定されたコンテキストでは無効です

誰か手を貸してくれませんか?

4

5 に答える 5

11
public static List<Color> ColorStructToList()
{
    return typeof(Color).GetProperties(BindingFlags.Static | BindingFlags.DeclaredOnly | BindingFlags.Public)
                        .Select(c => (Color)c.GetValue(null, null))
                        .ToList();
}

List<Color> colorList = ColorStructToList();


private void randomBackgroundColorButton_Click(object sender, EventArgs e)
{
    List<Color> myList = ColorStructToList();
    Random random = new Random();
    Color color = myList[random.Next(myList.Count - 1)];
    this.BackColor = color;
}

public static List<Color> ColorStructToList()
{
    return typeof(Color).GetProperties(BindingFlags.Static | BindingFlags.DeclaredOnly | BindingFlags.Public)
                        .Select(c => (Color)c.GetValue(null, null))
                        .ToList();
}
于 2013-04-21T12:16:09.607 に答える
0

VB.netのArtxztaの回答に基づいています:

Imports System.Reflection

Dim allColors As New List(Of String)

For Each [property] As PropertyInfo In GetType(Colors).GetProperties()
        allColors.Add([property].Name)
Next
于 2017-01-07T08:07:13.633 に答える