Jump to content

Textbox and combobox


Darmendes
 Share

Recommended Posts

Boas,

Tenho a seguinte situação:

O user tem de seleccionar o Client x na combobox que apresenta o ID , Nome e Address, isto e somente para visualizar porque somente irei precisar de inserir na BD o ID . Ou seja destes 3 argumentos como poderei somente utilizar 1 argumento neste caso o ID ?

Obrigado

Link to comment
Share on other sites

Ok, a meu ver o melhor é criares uma classe para guardares cada cliente.

Exemplo:

private class client
{
   public int ID;
   public string Nome;
   public string Address;

   // Fazes o override do ToString, que será usado para mostrar o conteúdo na combobox
   public override string ToString()
   {
       return (String.Format("{0} {1} {2}", this.ID, this.Nome, this.Address));
   }
}

Usas algo assim para adicionar cada cliente

comboBox1.Items.Add(new client()
{
   ID = 1,
   Nome ="client 1",
   Address ="address 1"
});

E para veres qual o selecionado,usas algo assim

if(comboBox1.SelectedIndex>=0)
{
   client cliente = (client)comboBox1.SelectedItem;

   MessageBox.Show(String.Format("Cliente selecionado: {0} - {1}", cliente.ID, cliente.Nome));
}
Link to comment
Share on other sites

Sim 🙂 obrigado mas eu tenho isso tudo , a questao a combobox1 mostra os clientes mas eu preciso de seleccionar o cliente para inserir na tabela booking i IDcliente. e e esta parte que nao estou a conseguir uma vez que tenho os 3 args e tenho de usar somente o IDClient , o que esta a dar erro por causa da string... 😞

Link to comment
Share on other sites

Ok, se preferes manter apenas a string na combobox, podes separar a string pelo caracter do espaço, ler o primeiro elemento e converter para inteiro.

Algo assim:

if(comboBox1.SelectedIndex>=0)
{
   //
   string[] tmp = comboBox1.SelectedItem.ToString().Split(' ');
   int ID = Convert.ToInt32(tmp[0]);
   //
   MessageBox.Show(String.Format("Cliente selecionado: {0}", ID));
}
Link to comment
Share on other sites

Já agora, o que estás a meter na DataSource da combobox?

-----------------EDIT

Podias era meter isso numa DataTable com as duas colunas e depois meter na combobox como o DataSource. Algo deste género, apesar de eu achar que a abordagem do nelsonr é melhor, com a classe:

ComboBox c = new ComboBox();
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");

foreach (var element in this.Users)
{
   dt.Rows.Add(element.IDUser, element.Name);
}

c.DataSource = dt;
c.DisplayMember = "Name";
c.ValueMember = "ID";

Atenção que não testei.

Edited by santanaguy
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.