226 votes

Comment faire correspondre l'élément sélectionné dans une comboBox à ma chaîne de caractères en utilisant C# ?

J'ai une chaîne "test1" et ma comboBox contient test1 , test2 et test3 . Comment puis-je définir l'élément sélectionné comme étant "test1" ? Autrement dit, comment faire correspondre ma chaîne à l'un des éléments de la liste déroulante ?

Je pensais à la ligne ci-dessous, mais cela ne fonctionne pas.

comboBox1.SelectedText = "test1";

4voto

Jelle Smits Points 11

J'ai rempli ma ComboBox avec une DataTable provenant d'une base de données. Puis j'ai défini le DisplayMember et le ValueMember. Et j'utilise ce code pour définir l'élément sélectionné.

foreach (DataRowView Row in ComboBox1.Items)
{
    if (Row["ColumnName"].ToString() == "Value") ComboBox1.SelectedItem = Row;
}

4voto

Roman Polenov Points 199

Cette solution est basée sur MSDN avec quelques modifications que j'ai faites.

  • Il trouve des informations exactes ou PARTIE de la chaîne et la fixe.

    private int lastMatch = 0;
    private void textBoxSearch_TextChanged(object sender, EventArgs e)
    {
        // Set our intial index variable to -1.
        int x = 0;
        string match = textBoxSearch.Text;
        // If the search string is empty set to begining of textBox
        if (textBoxSearch.Text.Length != 0)
        {
            bool found = true;
            while (found)
            {
                if (comboBoxSelect.Items.Count == x)
                {
                    comboBoxSelect.SelectedIndex = lastMatch;
                    found = false;
                }
                else
                {
                    comboBoxSelect.SelectedIndex = x;
                    match = comboBoxSelect.SelectedValue.ToString();
                    if (match.Contains(textBoxSearch.Text))
                    {
                        lastMatch = x;
                        found = false;
                    }
                    x++;
                }
            }
        }
        else
            comboBoxSelect.SelectedIndex = 0;
    }

J'espère avoir aidé !

1voto

user53378 Points 112
  • Énumérer les éléments de la liste dans la liste déroulante
  • Obtenir l'index de la liste des égaux et définir la boîte à boutons.
  • Définir listindex à celui trouvé.

Mais si je vois un tel code en tant qu'examinateur de code, je recommanderais de reconsidérer tout l'algorithme de la méthode.

1voto

Megacan Points 1856

Vous n'avez pas cette propriété dans la ComboBox. Vous avez SelectedItem ou SelectedIndex. Si vous disposez des objets que vous avez utilisés pour remplir la liste déroulante, vous pouvez utiliser SelectedItem.

Si ce n'est pas le cas, vous pouvez obtenir la collection d'éléments (propriété Items) et l'itérer jusqu'à ce que vous obteniez la valeur que vous voulez et l'utiliser avec les autres propriétés.

J'espère que cela vous aidera.

1voto

Dean Points 40
_cmbTemplates.SelectedText = "test1"

ou peut-être

_cmbTemplates.SelectedItem= _cmbTemplates.Items.Equals("test1");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X