311 messaggi dal 25 novembre 2010
ho una comboxo che riempio da database.
allo stesso tempo vorrei settare il valore rispetto a un valore che mi arriva da una DataGridView di un altro WindowsForm.
in sostanza nella finestra principale al doppio click:
        private void dataGridViewEntrate_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            List<string> list = new List<string>();
            for (int i = 0; i < dataGridViewEntrate.Rows[e.RowIndex].Cells.Count; i++)
            {
                list.Add(dataGridViewEntrate[i, e.RowIndex].Value.ToString());
            }
            FormUpdate feu = new FormUpdate(list);
            feu.Show();
        }

FormUpdate ha due ComboBox e qualche TextBox.
per le TextBox nessun problema.
però nn riesco a fargli settare il valore della ComboBox:
        public FormUpdate(List<string> list)
        {
            InitializeComponent();
            String[] valori = list.ToArray();
            fillComboCausale();
            fillComboConto();

            txtId.Text = valori[0];
            txtEntrata.Text = valori[1];
            comboBoxCausale.SelectedItem = valori[2];
            comboBoxConto.SelectedItem = valori[3];
        }

fillComboCausale() e fillComboConto() sono due metodi che riempiono le combo.
sapete dirmi dove sbaglio??
Modificato da fermat il 16 dicembre 2011 22.24 -
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, controlla che valori[2] e valori[3] esistano all'interno delle rispettive combobox. E' importante rispettare maiuscole e minuscole, ti faccio un esempio:

comboBox1.Items.Add("Verde");
comboBox1.Items.Add("Rosso");
comboBox1.Items.Add("Blu");
//questo non funzionerà perché la r è minuscola
comboBox1.SelectedItem = "rosso";
//questo sì
comboBox1.SelectedItem = "Rosso";


ciao

Enjoy learning and just keep making
311 messaggi dal 25 novembre 2010
ciaoa e scusa il ritardo nella risposta.
allora, i valori esistono perchè vengono visualizzati nella finestra quando avvio il programma.
a rigord di logica dovrebbe andare.
anche perchè se al posto di vaolir[1] ci metto a mano un valore specifico il tutto funziona.
in sostanza nn riesce a prendere quello dell'array che gli passo.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

fermat ha scritto:

anche perchè se al posto di valori[2] ci metto a mano un valore specifico il tutto funziona.

ok, bene, hai verificato che la selezione funziona se digiti un valore a mano.
Io credo che valori[2] non contenga il valore che è nella DropDownList, non c'è altra spiegazione. Infatti, che il valore si trovi su una stringa o su un elemento di un array di stringhe non pone alcuna differenza.

Prova così, per eliminare eventuali caratteri speciali o spazi che si trovino all'inizio o alla fine della stringa
comboBoxCausale.SelectedItem = valori[2].Trim();
E se non dovesse funzionare, metti un breakpoint su quella linea e verifica col debugger qual è l'effettivo valore di valori[2]. Secondo me ha un valore diverso da quello che ti aspetti di trovare.

ciao
Modificato da BrightSoul il 20 dicembre 2011 23.16 -

Enjoy learning and just keep making
311 messaggi dal 25 novembre 2010
il debug mi riporta questo:
[2]  "versamento"  string

quindi il valore dovrebbe riconoscerlo.
nella lista c'è!!
42 messaggi dal 13 settembre 2007
Prova una cosa del genere:
ListItem item = comboBoxCausale.Items.FindByValue(value[2]);/*FindByText*/
/*item è null?????*/
comboBoxCausale.SelectedItem = item ;


Ciao
311 messaggi dal 25 novembre 2010
ma la classe ListITem nn è solo per l'Asp.net?
http://msdn.microsoft.com/it-it/library/system.web.ui.webcontrols.listitem%28v=VS.100%29.aspx

fa parte del namespace System.Web.UI.WebControls....
42 messaggi dal 13 settembre 2007
Scusami non avevo letto che era una WinForm.
Comunque in questo caso prova ad usare
int listItem = comboBox1.FindString("stringa")

che ritorna il primo elemento che inizia con "stringa" senza applicare le maiuscole e minuscole. Ritorna -1 se non trova niente.
Se trova qualcosa lo assegni con il selectedIndex... almeno così vedi se il valore è presente dentro la combo

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.