C#遍曆結構體
Type type = typeof(Color); PropertyInfo[] fields = type.GetProperties(); //FieldInfo[] fields =type.GetFields(System.Reflection.BindingFlags.Public|System.Reflection.BindingFlags.Static); int i = 30; panel1.Controls.Clear(); foreach (PropertyInfo f in fields) { if (f.ToString().IndexOf(".Color ") > 0) { Button btn = new Button(); btn.BackColor = Color.FromName(f.Name); btn.Text = f.Name; btn.Location = new Point((i % 10) * 125, 10 + (i / 10) * 30); //btn.AutoSize = true; btn.Width = 120; i++; panel1.Controls.Add(btn); } }
C#遍曆枚舉
enum類有GetNames和GetValues可以用,比如, WindowState這個枚舉 foreach(string s in Enum.GetNames(this.WindowState.GetType())) label1.Text += (s + "\r\n "); foreach(int i in Enum.GetValues(this.WindowState.GetType())) label1.Text += (i.ToString() + "\r\n ");
有時候通過GetValues取不到枚舉值,因為枚舉的值都是int型,所以可以這樣取:
(int)Enum.GetNames(this.WindowState.GetType())[0];