c# Come faccio a selezionare una casella di riepilogo voce quando ho il nome di valore in una stringa?

Ho una stringa “articolo3” e una casella di riepilogo con ‘elemento1,elemento2,articolo3,articolo4’, come faccio a selezionare item3 nella casella di riepilogo quando ho il nome dell’oggetto in una stringa?

Grazie

Puoi postare il tuo codice se selectedValue non funziona?
Stai usando WPF? So che il SelectedValue non è R/W in pochi controlli. Se è così, ricordate di tag WPF domande come WPF. Se non, ignorare me 😉

OriginaleL’autore | 2009-07-16

8 risposte

  1. 15
    int index = listBox1.FindString("item3");
    //Determine if a valid index is returned. Select the item if it is valid.
    if (index != -1)
         listBox1.SetSelected(index,true);
    O si può fare libbre.SelectedIndex = lb.Si(campo);
    Nessuno di questi lavori per me, perché io non ho .SetSelected() funzione… ho appena scoperto che sto usando ListBox dal Sistema.Controlli, e che è diverso..

    OriginaleL’autore Nescio

  2. 4
    listBox.FindStringExact("item3");

    Restituisce l’indice del primo elemento trovato, o ListBox.NoMatches se non viene trovata alcuna corrispondenza.

    è quindi possibile chiamare

    listBox.SetSelected(index, true);

    per selezionare questa voce

    OriginaleL’autore Patrick McDonald

  3. 1

    Forse come questo:

    public bool SelectItem(ListBox listBox, string item)
        {
            bool contains = listBox.Items.Contains(item);
            if (!contains)
                return false;
            listBox.SelectedItem = item;
            return listBox.SelectedItems.Contains(item);
        }

    Metodo di prova:

    public void Test()
        {
            string item = "item1";
            if (!SelectItem(listBox, item))
            {
                MessageBox.Show("Item not found.");
            }
        }
    Meglio il messaggio dovrebbe essere “Elemento non trovato.”

    OriginaleL’autore Michał Ziober

  4. 1

    SelectedValue funzionerà solo se è impostata la ValueMember per il controllo listbox.

    Inoltre, anche se si imposta la ValueMember, selectedValue non funziona se la ListBox.Sorted = true.

    Controllare il mio post su Impostazione dell’elemento selezionato nella ListBox senza loop

    Si può provare uno di questi approcci:

    1. lb.SelectedValue = fieldValue;

    2. lb.SelectedIndex = lb.FindStringExact(fieldValue);

    3. Questo è un metodo generico per tutte le caselle di riepilogo. Implementazione cambiano in base a che cosa si sono vincolanti per la casella di riepilogo. Nel mio caso è DataTable.

      private void SetSelectedIndex(ListBox lb, string value)
      {
          for (int i = 0; i < lb.Items.Count; i++)
          {
              DataRowView dr = lb.Items[i] as DataRowView;
              if (dr["colName"].ToString() == value)
              {
                  lb.SelectedIndices.Add(i);
                  break;
              }
          }    
      }
    Questa è la prima volta che ho visto una ragazza COSÌ. Per vedere bene. Ma in ogni caso il mio insticts premono per segnalare qualche errore con nessun risultato. la tua risposta è perfettamente corretto(finora ho controllato).

    OriginaleL’autore Rashmi Pandit

  5. 1
    CheckBoxList.Items.FindByValue("Value").Selected = true;

    OriginaleL’autore AKV

  6. 0

    Non è SelectedValue di lettura/scrittura?

    Ho provato lstbox.selectedvalue = strItem; ma che non sembra funzionare per me.
    È questo WinForms o WebForms?

    OriginaleL’autore Lazarus

  7. 0
    static class ControlHelper
    {
        public static void SelectExactMatch(this ComboBox c, string find)
        {
            c.SelectedIndex = c.FindStringExact(find, 0);
        }
    }

    OriginaleL’autore Four

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *