2010-08-09 4 views

Répondre

1

Lien du « texte modifié » de zone de texte de l'événement à une fonction, puis envoyer les membres de cette zone de texte à la méthode:

private void myTxtbox_TextChanged(object sender, EventArgs e) 
{ 
    //Call the method with the name and value of the text box 
    myMethod(myTextBox.Name, myTextBox.Text); 
} 

Il suffit de le faire pour chaque zone de texte sous la forme.

EDIT: VOICI LE CODE GÉNÉRIQUE

Voici le code générique pour la zone de texte:

private void allTxtBox_TextChanged(object sender, EventArgs e) 
{ 
    //'sender' is the text box who's text was just changed 
    string name = ((TextBox)sender).Name; 
    string text = ((TextBox)sender).Text; //This will be the new text in the text box 

    //Call the method with the name and value of the text box 
    myMethod(name, text); 
} 

En utilisant cette méthode juste un lien de l'événement « TextChanged » de chaque zone de texte cette une seule fonction. Vous pouvez le faire facilement dans l'éditeur d'événements dans la fenêtre Propriétés de Visual Studio.

+0

Si vous définissez le générique du gestionnaire (renvoyer l'expéditeur au type d'origine plutôt que myTextBox en dur), vous pouvez réutiliser le même gestionnaire pour plusieurs zones de texte plutôt que de devoir en coder un nouveau à chaque fois. –

+0

Merci, Mike! La suggestion de Justin de rendre le gestionnaire générique est géniale, mais je ne sais pas comment l'implémenter. – user404651

3

Inscrivez-vous pour l'événement OnTextChanged pour les zones de texte en question:

txtBox1.OnTextChanged += new TextChangedEventHandler(txtBox_OnTextChanged); 
txtBox2.OnTextChanged += new TextChangedEventHandler(txtBox_OnTextChanged); 
txtBox3.OnTextChanged += new TextChangedEventHandler(txtBox_OnTextChanged); 
// And so on... 

Et puis:

public void txtBox_OnTextChanged(object sender, EventArgs e) 
{ 
    var textBox = (TextBox)sender; 

    OtherMethod(textBox.Name, "Some New Value"); 
} 

public void OtherMethod(string name, string value) 
{ 
    // Do whatever here 
} 
Questions connexes