quinta-feira, 19 de setembro de 2013

DropDown com Seleção de Cores

Já teve casos onde precisou deixar o usuário escolher a cor de algum objeto, neste exemplo vou mostrar como criar um DropDown com a seleção.



Veja o código, porém recomendo que baixe a solução, e debug.

private void btnLoad_Click(object sender, EventArgs e)
{
    ArrayList ColorList = new ArrayList();
    Type colorType = typeof(System.Drawing.Color);
    PropertyInfo[] propInfoList =                       colorType.GetProperties(BindingFlags.Static |BindingFlags.DeclaredOnly | BindingFlags.Public);
    foreach (PropertyInfo c in propInfoList)
    {
        this.cmbboxClr.Items.Add(c.Name);
    }
}
No dropdown o evento DrawItem é usado para desenhar uma tira de cor usando o método FillRectangle.

private void cmbboxClr_DrawItem(object sender, DrawItemEventArgs e)
{
    Graphics g = e.Graphics;
    Rectangle rect = e.Bounds;
    if (e.Index >= 0)
    {
       string n = ((ComboBox)sender).Items[e.Index].ToString();
       Font f = new Font("Arial", 9, FontStyle.Regular);
       Color c = Color.FromName(n);
       Brush b = new SolidBrush(c);
       g.DrawString(n, f, Brushes.Black, rect.X, rect.Top);
   g.FillRectangle(b, rect.X + 110, rect.Y + 5, rect.Width - 10,                               rect.Height - 10);
    }
}

Bons estudos

0 comentários:

Postar um comentário