Litigando con le comboBox

csharp Un paio di cose da sapere sulle comboBox in C# / WindowsForms:

  • La generazione automatica del codice produce un controllo che non serve a nulla
  • Nell’ipotesi piu classica, ovvero di avere una form che mostra il contenuto di una tabella con collegamenti ad atre tabelle mediante id, la soluzione piu comoda per permettere l’editing è la comboBox
  • Per "caricare" i dati da un altra tabella bisogna associare a ComboBox.DataSource una bindingSource avendo cura di specificare in ComboBox.DisplayMember il nome del campo da visualizzare, e in ComboBox.ValueMember il nome del campo contenente la chiave su cui è basato il collegamento tra le due tabelle (in genere Id)
  • Il dataBinding va eseguito sulla proprietà "SelectedValue"

 

Esempio:

this.MycomboBox.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.PrimaryBindingSource, "nomecampo_contenente_id", true));
this.MycomboBox.DataSource = this.SecBindingSource;
this.MycomboBox.DisplayMember = "Nome";
this.MycomboBox.ValueMember = "Id";