Interface graphique

Résolu
medinfo87 Messages postés 72 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 11 juillet 2011 - 17 mars 2009 à 16:11
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 17 mars 2009 à 17:27
salut tt le monde :
private void textBox2_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
                MessageBox.Show("le champs identifient est vide",erreur, MessageBoxButtons.OK, MessageBoxIcon.Error);
            textBox1.Focus();
}
}

bon ce code ça marche bien si je clique sur le 2ème champs ,mais si je passe par tabulation le test ne s'effectue pas;

existe -t-il une autre fonction pour resoudre ce problème... merci d'avance...

6 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
17 mars 2009 à 17:27
Salut, propriété CauseValidation et events Validating et/ou Validated.

public partial class Form1 : Form
{
    private TextBox tb1 = null;
    private TextBox tb2 = null;


    public Form1( )
    {
        InitializeComponent( );


        tb1 = new TextBox( );
        tb1.Parent = this;
        tb1.Location = new Point( 10, 10 );
        tb1.CausesValidation = true;
        tb1.Validating += TextBox_Validating;


        tb2 = new TextBox( );
        tb2.Parent = this;
        tb2.Location = new Point( 10, tb1.Bottom + 2 );
    }


    private void TextBox_Validating( object sender, CancelEventArgs args )
    {
        if ( tb1.Text == String.Empty )
        {
            tb1.Text = "[EMPTY]";
            tb1.Select( 0, tb1.Text.Length );
            MessageBox.Show( "Err" ); // Voir ErrorProvider.
            args.Cancel = true;
        }
    }
}
3
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
17 mars 2009 à 16:25
Salut

Essaie plutôt l'événement textBox1.Leave

Krimog :
while (!succeed = try()) ;
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
17 mars 2009 à 16:26
ou textBox2.Enter

Krimog :
while (!succeed = try()) ;
0
medinfo87 Messages postés 72 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 11 juillet 2011
17 mars 2009 à 16:45
pardon, mais en sautant le 2éme champ passant à l'un des champs qui suivent le contrôle ne s'effectue pas . alors comment procéder sans utiliser la meme fonction pour chaque champ? Merci d'avance!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
medinfo87 Messages postés 72 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 11 juillet 2011
17 mars 2009 à 16:56
sinon, avec leave, est ce que je peux eliminer un bouton ?par exemple : si je clique sur quitter sans valider; le message d'erreur ne s'affiche pas ???????????????
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
17 mars 2009 à 17:12
Le mieux, c'est effectivement l'événement Leave, ça évitera d'avoir à faire un test pour chaque contrôle. Quant au bouton "Quitter", de base l'événement Leave sera déclenché. Pour éviter ça, tu peux faire if(!monBoutonQuitter.Focused) { // erreur }else{ // pas d'erreur }

Krimog :
while (!succeed = try()) ;
0
Rejoignez-nous