2010-12-01 28 views
0

Salut J'ai utilisé la méthode textBox_leave pour valider la zone de texte et si l'on clique sur un contrôle, je veux afficher une boîte de message. Mon code est quelque chose comme montré ci-dessous.L'événement textbox_leave se déclenche deux fois en cliquant sur la zone de liste déroulante

private void txtbox_Leave(object sender, EventArgs e) 
    { 

if(textbox.Text != "this") 
    { 
messagebox.show("Not valid"); 
textbox.focus(); 

    } 

} 

Le problème est quand je clique sur un comboBox sous la forme de la pop messagebox deux fois. Si je clique sur un autre contrôle, cela fonctionne très bien. Comment puis-je résoudre ce problème?

Merci à l'avance ..

Répondre

0

Il serait plus approprié d'utiliser ComboBox.SelectedIndexChanged or ComboBox.SelectedValueChanged pour valider la valeur sélectionnée par l'utilisateur du comboBox.

+0

Je veux valider la valeur de la zone de texte .. la boîte de message doit être montrée s'il n'y a pas de texte valide dans la zone de texte quand nous cliquons sur la zone de liste déroulante ou d'autres contrôles.Pour d'autres commandes cela fonctionne bien. Le problème est lors de l'accès à la zone de liste déroulante. – Dinu

+0

Peut-être que vous pourriez vérifier si la zone de texte a du texte valide sur le domaine privé comboBox1_Enter (expéditeur d'objet, EventArgs e) {txtbox_Leave (expéditeur, e); } dans le cas de la combobox – user486371

0

Je ne peux pas reproduire. Peut-être essayer ceci:

string message = (sender is Control) ? ((Control)sender).Name : ""; 
message += " " + sender.ToString(); 
MessageBox.Show(message); 

Voir ce qui déclenche l'événement.