Ao ler o outro post, um visitante do site me disse:
... será q tem como eu declarar um enum com os valores enum{Pendente, EmAndamento, Concluido} e eu querer exibir em meu combobox os valores {Pendente, Em Andamento, Concluído}. Observa-se que no meu enum não tem espaços e acentos, mas na forma q eu quero exibir tem.
A solução mais simples é não usar um enum e sim um Hashtable, como no exemplo abaixo:
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections;
namespace HashtableComboBox
{
public partial class Form1 : Form
{
ComboBox cb = new ComboBox();
public Form1()
{
InitializeComponent();
this.StartPosition =
FormStartPosition.CenterScreen;
}
private void Form1_Load(object sender, EventArgs e)
{
Hashtable ht = new Hashtable();
ht.Add("Pendente", "Pendente");
ht.Add("EmAndamento", "Em andamento");
ht.Add("Concluido", "Concluído");
//36 = 10 da margem + 8 da borda (de cada lado)
cb.Width = this.Width - 36;
cb.Location = new Point(10, 10);
cb.DataSource = new BindingSource(ht, null);
cb.DisplayMember = "Value";
cb.ValueMember = "Key";
cb.SelectedIndexChanged += new EventHandler(cb_SIC);
this.Controls.Add(cb);
cb.SelectedIndex = -1;
cb.Text = "(escolha uma opção)";
}
void cb_SIC(object sender, EventArgs e)
{
if (cb.SelectedValue != null)
MessageBox.Show(String.Format(
"O valor de [{0}] é:\n\n{1}",
cb.Text,
cb.SelectedValue.ToString()),
Application.ProductName,
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
}
