C# winform zone de texte.le texte ne change pas
public partial class A : UserControl
{
private string _x;
public string X {
get { return _x; }
set {
this._x = value;
this.textBox1.Text = this._x;
}
}
public partial class B : WinForm
{
public B() {
//Add usercontrol A to Groupbox1
//Set A.X = "hello world"
}
}
public class MainForm: WinForm
{
public void button1_Click(....) {
B bForm = new B();
bForm.ShowDialog();
}
}
Au moment de la conception, j'ai mis le textbox1.Texte="bonjour". Dans la Classe Principale, j'ai un bouton qui permet d'ouvrir une nouvelle forme B et sur le formulaire B, j'ai une zone de groupe pour ajouter cet utilisateur contrôle Un et modifier la propriété X value = "hello world", mais le textBox1.Le texte ne change pas sur l'INTERFACE utilisateur. Lorsque j'ai mis un point de rupture après la textbox1.Texte = ce._x, il montre la valeur a changé à "hello world", mais il ne figure pas sur l'INTERFACE utilisateur?
Pourquoi? Et comment le résoudre?
Merci beaucoup.
- Voulez-vous modifier le texte de la textbox même que le X que vous avez à attribuer
this.txtBox1.Text = this._x;
- Merci. Je viens de mettre à jour la question.
- Utilisez-vous la liaison de données?
- Non, je ne suis pas d'utiliser la liaison de données. Se demander pourquoi le jeu .Directement le texte ne fonctionne pas.
- Montrer votre ` //Afficher le Formulaire B " code
- Je viens de le mettre à jour.
- Ne voyez pas votre B le code du constructeur, mais gardez à l'esprit que votre
X
propriété est sérialisé dansInitializeComponent
méthode, et si vous définissezX
avantInitializeComponent
alors il sera effacé dansInitializeComponent
méthode. - Il semble que si cette valeur est remplacée après l'avoir définie. Je voudrais essayer de repérer toutes les références à
textBox1
et de mettre un point d'arrêt dans chaque ligne où la propriété Text est changé (si il y a ces lignes). Si vous ne trouvez pas ce que de cette façon, j'aimerais ajouter un événement TextChanged avec une méthode simple, avec seulement un point d'arrêt dans le but de comprendre quand/où la valeur est modifiée. - je vais avoir d'autres tests demain. Post sera mise à jour plus tard.
- Avoir un regard sur ce & c'est une solution parfaite:stackoverflow.com/questions/2881409/...
Vous devez vous connecter pour publier un commentaire.
Je pense (car je ne vois pas tout le code, et c'est comme jeu de devinettes 8)) - il y a
InitializeComponent
méthode dansclassB
. DepuisX
propriété n'a pasDesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)
attribut il est sérialisé dansInitializeComponent
méthode avec chaîne vide - effaçant ainsi déjà explicitement de valeur.