2011-09-04 2 views
0

Existe-t-il un moyen de mettre à jour automatiquement une étiquette pour que je n'aie pas besoin d'utiliser un bouton pour envoyer la commande? Ce que j'ai configuré est une zone de texte subtotal, une zone de texte de réduction, une étiquette de taxe, une zone de texte d'expédition et une étiquette totale. Donc, quand les gens remplissent le sous-total, la remise et l'expédition, je veux que l'étiquette fiscale soit calculée, mais seulement si auparavant un certain état a été sélectionné dans une autre partie du formulaire. Donc, avec tous ceux remplis, je veux que l'étiquette totale soit remplie. Tout cela, je sais que je peux faire avec un bouton, mais je me demandais s'il y avait un moyen de l'automatiser en utilisant C# dans Visual Studio.Libellé de mise à jour sans bouton

Merci.

+3

WinForms? WPF? Silverlight? ASP.Net? MonoTouch? – SLaks

+0

@SLaks: C'est un WinForms – cb1295

Répondre

2

J'utilise l'événement TextChanged pour mettre à jour de telles valeurs entre des paires de zones de texte. Voici quelques extraits de mon code:

private void onLongitudeTextChanged(object sender, EventArgs e) { 
      updateDistanceAndBearing(); 
     } 

updateDistanceAndBearing fait quelques vérifications d'erreur - cela peut être une bonne idée si l'utilisateur peut mettre des valeurs non valides dans et met à jour la propriété Text des autres TextBoxes j'ai des zones de texte mais mettez à jour la propriété label.Text à la place.

Il devient de plus en désordre (au moins je l'ai trouvé si) si vous avez updowns numériques pour obtenir des valeurs

+0

Ok, donc cela fonctionne entre les zones de texte, donc je suppose que je pourrais l'avoir vérifier pour s'assurer que toutes les valeurs ont été remplies, et comme vous l'avez dit, avec des valeurs valides. Merci, je vais essayer dans un peu. – cb1295

+0

Oui, il existe des moyens de valider une zone de texte au cours de la frappe. Il y a le ErrorProvider dans NET qui peut être utilisé http://msdn.microsoft.com/en-us/library/system.windows.forms.errorprovider(v=VS.90).aspx – ScruffyDuck

1

Vous pouvez appeler une méthode pour mettre à jour l'étiquette dans les événements de modification pour les contrôles.

Pour plus de détails, veuillez fournir plus de détails.

1

c'est du haut de ma tête, mais si vous vous en approcher ...

private void taxChanged(object sender, EventArgs e) 
     { 
      updateTax(); 
     } 


private void updateTax() 
     { 
      // the rest of your logic, checking state, etc. 
      // 
      this.Tax.Text = aValueCalculatedInYourLogicAbove; 
      updateTotal() 
     } 

private void updateTotal() 
     { 
      // sum up whatever fields need to be summed 
      // 
      this.Tax.Text = aTotalValueCalculatedAbove; 
     } 
+0

Merci, j'aimerais pouvoir choisir deux réponses, déjà choisi l'autre, mais celui-ci est bon aussi. – cb1295

Questions connexes