2009-05-31 6 views
0

Simplification J'ai une zone de texte et un bouton Le bouton crée simplement une boîte de message avec le texte de la zone de texte. Mais je change la valeur de la zone de texte, la nouvelle valeur apparaît (Ex: Type 123) mais la boîte de message n'affiche pas la valeur.Problème de modification des valeurs dans la zone de texte

Si j'essaie d'utiliser la valeur dans la programmation (obtenir la valeur par textbox1.text) la variable n'a rien (textbox1.text = "") mais je peux toujours voir ce que j'ai tapé dans le formulaire.

Quelqu'un a la moindre idée?

+0

Pouvez-vous montrer du code? –

+0

Êtes-vous sûr d'avoir la bonne zone de texte? parfois textbox1 et textbox11 se ressemblent quand vous en avez beaucoup (insérez un peu sur le nom correct ici) – Crash893

Répondre

0

Merci Eric et Crippledsmurf. Comme vous l'avez dit tous les deux, c'est difficile d'aider sans le code. Le problème que j'ai trouvé est que lorsque j'appelle le formulaire, j'envoie des objets par référence, donc je peux les retrouver et je trouve ça quand (ne me demandez pas pourquoi ça se passe ainsi, je travaille encore dessus) le construtor est appelé il fait un nouveau composant, donc le composant dans l'interface ne représente plus celui pointé par la variable "textbox1" (Oui Crash893, je n'ai pas mal orthographié le nom).

J'ai trouvé que je faisais un peu de désordre avec les références, et probablement que cela causait le problème. J'ai corrigé le problème en changeant les actions effectuées par les références pour les délégués et les événements, mais je n'ai pas pu trouver la source exacte du problème.

Merci encore à tous pour vos conseils.

0

événement clic de votre bouton de gestionnaire devrait ressembler à ceci

private void button_Click(object sender, EventArgs e) 
{ 
MessageBox.Show(textBox.Text); 
} 

Je suppose que vous avez déjà un code similaire à ceci et cela à un moment donné la zone de texte est effacé ou autrement mis à String.Emppty mais sans voir réelle code il est difficile de vous aider

+0

Son exaclty ce que je fais. Je vais vérifier les autres fonctions pour voir si quelqu'un a nettoyé la zone de texte. – RMAAlmeida

0

Quand/où avez-vous vérifié la valeur de textBox1.Text? Si vous le vérifiez dans le constructeur, Form1_Load, ou toute autre chose qui se produit avant vous aurez tapé du texte, vous obtiendrez une valeur vide.

Pour vérifier correctement la valeur de textBox1.Text, vous devez définir ce que l'on appelle un point d'arrêt sur la ligne qui appelle MessageBox.Show (textBox1.Text). Pour ce faire, cliquez dans la zone grise de l'éditeur de source (à gauche) sur la ligne contenant MessageBox.Show (..). Un cercle rouge apparaîtra et votre code devrait être mis en évidence. Lorsque vous exécutez votre application et cliquez sur votre bouton, votre application doit mettre en pause et Visual Studio mettra en surbrillance cette ligne et d'ici vous pouvez survoler "textBox1.Text" dans la ligne MessageBox.Show() et il devrait vous montrer la valeur actuelle .

Si votre application est aussi simple qu'un formulaire, une zone de texte et votre code de gestion d'événement button1_Clicked, cela ne devrait pas poser de problème. Si ce n'est pas si simple, alors vous devez rechercher tout ce qui définit la valeur de la zone de texte dans votre code et assurez-vous qu'il ne transmet aucune valeur vide en utilisant des points d'arrêt.

Pour résoudre cela correctement, cependant, nous avons vraiment besoin de plus d'informations.

Questions connexes