摘要:列舉系統的所有Color並以ComboBox顯示
首先當然先利用Reflection的方式取得系統中的所有Color,將利Color的名子加到cmbColor中。
Type type = typeof(Color); PropertyInfo[] propInfo = type.GetProperties( BindingFlags.Static | BindingFlags.Public); var names = from color in propInfo where color.Name != "Transparent" select color.Name; cmbColor.Items.Clear(); foreach (var item in names) { cmbColor.Items.Add(item); } 接著在cmbColor中自行繪制顯示的內容,在這邊需要將cmbColor中的屬性'DrawMode'設為'OwnerDrawFixed',並新的DrawItem事件 DrawItem事件的內容如下: Graphics g = e.Graphics; Rectangle rect = e.Bounds; if (e.Index >= 0) { string colorName = ((ComboBox)sender).Items[e.Index].ToString(); Font font = new Font("Arial", 9, FontStyle.Regular); Color color = Color.FromName(colorName); Brush brush = new SolidBrush(color); g.FillRectangle(brush, rect.X + 5 , rect.Y, 10, rect.Height); g.DrawString(colorName, font, Brushes.Black, rect.X + 15, rect.Top); }
以上。
============ 以下是簽名檔 ============
一個小小螺絲釘。
第一次建立Blog,希望以後能慢慢充實它。
Howard