Partage
  • Partager sur Facebook
  • Partager sur Twitter

GUI - "rafraichissement" TextBox

Modification de la propriété Text

    7 octobre 2011 à 15:02:31

    Bonjour,

    Je débute en développement GUI avec C#.
    Lorsque l'utilisateur clique sur un element d'une ListBox, j'assigne une nouvelle valeur a la propriété Text de plusieurs TextBox.

    C'est la que je bloque, j'ai modifié les propriété Text de plusieurs TextBox, mais dans l'interface graphique, aucun changement n'apparait...

    Ci-dessous mon code:

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e){
      int curItem = this.listBox1.SelectedIndex;
      StockItem it = this.model.Items.ElementAt(curItem);
      MessageBox.Show("item "+ it.ToString());
      this.itemNameTextBox.Text = it.Name;
      this.supplierTextBox.Text = it.Supplier;
      this.unitCostTextBox.Text = it.UnitCost.ToString();
      this.nbRequiredTextBox.Text = it.NbRequired.ToString();
    }
    


    Merci!
    • Partager sur Facebook
    • Partager sur Twitter
      7 octobre 2011 à 15:52:58

      et ton messagebox tu le vois lui ?
      • Partager sur Facebook
      • Partager sur Twitter
        7 octobre 2011 à 16:03:59

        Oui je le vois.

        Je pense que je vois pas l'évolution du contenu de TextBox.Text dans l'inteface, parce que l'objet TextBox a déjà était instancié et rendu visible avant que je modifie la propriété Text.

        Je sais pas comment avertir le système que j'ai changer la propriété Text de l'objet TextBox pour qu'il la mette a jour au niveau visuel.
        • Partager sur Facebook
        • Partager sur Twitter
          7 octobre 2011 à 16:41:59

          Habituellement, quand tu modifie l'attribut Text d'un TextBox, on observe le changement à l'instant, tu devrais peut-être mettre un breakpoint et regarder le contenu d'un objet StockItem.
          • Partager sur Facebook
          • Partager sur Twitter
            7 octobre 2011 à 20:34:41

            Bien vu! Ma propriété it.Name est null...

            Du coup il y a quelque chose que je ne comprends pas :
            Quand j'appelle ma méthode toString() sur mon StockItem it, celle ci va cherché l'attribut name, est il n'est pas null quand la boite de dialogue est affichée!
            Donc mon accesseur semble ne pas marcher...

            Pourtant il me semble que le code est bon :

            public class StockItem{
            
            	private String name;
            	...
            
            	public String Name{get;set;}
            	...
            }
            
            • Partager sur Facebook
            • Partager sur Twitter
              7 octobre 2011 à 20:45:57

              Ok bien, si tu veux le faire de cette manière , avec l'attribut et un acesseur/mutateur, tu devrais le faire comme sa :
              public class StockItem
              {
              	private String _name;
              	
              	public String Name
              	{
              		get
              		{
              			return _name;
              		}
              		set
              		{
              			_name = value;
              		}
              	}
              }
              


              Mais, si tu ne fais aucun contrôle sur la mutation de ton attribut, tu devrais simplement faire sa comme ceci :
              public class StockItem
              {
              	public String Name { get; set; }
              	
              }
              
              • Partager sur Facebook
              • Partager sur Twitter
                8 octobre 2011 à 4:01:46

                Super!
                C'était donc ca!
                Faute de ma part de ne pas m'être plus renseigner comment marchait les propriétés...

                Merci beaucoup!
                • Partager sur Facebook
                • Partager sur Twitter

                GUI - "rafraichissement" TextBox

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown