0 votes

Sélection des éléments dans une combobox et suppression.

Je veux trouver un index d'une combobox en utilisant des nombres dans le texte d'une zone de texte, puis les supprimer. Les éléments qui peuplent la combobox appartiennent à une base de données donc j'utilise la méthode Delete pour supprimer les lignes.

MODIFIÉ:

J'ai lu et le findstring trouve du texte dans la liste des éléments, pas l'index. Y a-t-il un moyen de chercher le texte dans la zone de texte dans l'index de la combobox ?

Quelqu'un peut-il trouver le problème avec ce code ?

private void button4_Click(object sender, EventArgs e)
    {
        int buscar;
        buscar = comboBox1.FindStringExact(tNumEditBox3.Text, 0);

        comboBox1.SelectedIndex = buscar;

        if (comboBox1.SelectedIndex >= 0 && radioButton1.Checked == true)
        {
                CambiosEnviosDataSet.CambioGRow borrarCambioGFila;
                borrarCambioGFila = cambiosEnviosDataSet.CambioG.FindByCambioGID(Convert.ToInt16(tNumEditBox3.Text));

                borrarCambioGFila.Delete();

                this.cambioGTableAdapter.Update(this.cambiosEnviosDataSet.CambioG);

                CambiosEnviosDataSet.CambioERow borrarCambioEFila;
                borrarCambioEFila = cambiosEnviosDataSet.CambioE.FindByCambioEID(Convert.ToInt16(tNumEditBox3.Text));

                borrarCambioEFila.Delete();

                this.cambioETableAdapter.Update(this.cambiosEnviosDataSet.CambioE);
        }
        else if (comboBox2.SelectedIndex <= 0 && radioButton2.Checked == true)
        {
                CambiosEnviosDataSet.EnviosRow borrarEnvioFila;
                borrarEnvioFila = cambiosEnviosDataSet.Envios.FindByEnvioID(Convert.ToInt16(tNumEditBox3.Text));

                borrarEnvioFila.Delete();

                this.enviosTableAdapter.Update(this.cambiosEnviosDataSet.Envios);
        }
        else 
        {
            MessageBox.Show("La clé que vous utilisez n'est pas dans l'index");
        }
    }

0voto

ChrisF Points 74295

Quelques idées me viennent à l'esprit.

Soit la valeur dans tNumEditBox3.Text n'est pas une valeur présente dans la liste déroulante. Avez-vous vérifié sa valeur avant l'appel à :

buscar = comboBox1.FindStringExact(tNumEditBox3.Text, 0);

L'autre alternative est que radioButton2.Checked est à false.

Au fait, vous n'avez pas besoin de tester explicitement une valeur booléenne contre true ou false. Vous pouvez simplement écrire :

if (valeur_boolean)
{
    // Faire quelque chose
}

0voto

SLaks Points 391154

Votre appel à FindStringExact va sauter le premier élément. À moins que vous ne vouliez rechercher uniquement les éléments après le premier, vous devriez utiliser la surcharge qui ne prend pas de paramètre startIndex, comme ceci:

buscar = comboBox1.FindStringExact(tNumEditBox3.Text);

Si ce n'est pas le problème, vérifiez que le texte dans la zone de texte correspond exactement à l'un des éléments de la liste déroulante, et assurez-vous que radioButton1 est coché.

0voto

SLaks Points 391154

Tel que je comprends (corrigez-moi si je me trompe), votre zone de texte a l'identifiant d'un élément dans la liste déroulante (par exemple, 3).

Vous devez trouver l'élément qui correspond à cet identifiant, puis définir la propriété SelectedItem de la liste déroulante, comme ceci :

comboBox1.SelectedItem = 
    cambiosEnviosDataSet.CambioG.FindByCambioGID(Convert.ToInt16(tNumEditBox3.Text));

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