2013-04-01 14 views
8

Ich habe ein C# -Programm eingerichtet, das eine Mengeneingabe akzeptieren soll, wenn ein Kontrollkästchen aktiviert ist. Es multipliziert dann die Menge mit dem Preis und aktualisiert das entsprechende Etikett mit den Gesamtkosten.Warum wird mein C# -Label-Textwert nicht aktualisiert?

Wenn ich das Programm jedoch ausführe, aktualisiert es das Etikett nicht. Ich habe den Debugger ausgeführt und der Textwert des Labels im System ist korrekt, aber es erscheint immer noch nicht auf dem tatsächlichen Formular.

Gibt es eine Label-Eigenschaft in Visual Studio, die verhindert, dass Änderungen gerendert werden?

hier das Snippet verantwortlich für die Aktualisierung des Wertes Label.text ist

if (chkSesame.Checked) 
    { 
     intSesameQty = Convert.ToInt32(txtSesameQty.Text); 
     decSesameTotal = intSesameQty * decBAGEL_PRICE; 
     lblSesameSeedTotal.Text = decSesameTotal.ToString("c"); 
    } 
+0

Stellen Sie sicher, dass Sie später nicht den Wert von 'lblSesameSeedTotal.Text' in Ihrem Code zurücksetzen, auch welche Art von Anwendung zielen Sie auf winfomr, wpf ab? Netz ? – Habib

+0

@Habib winform, und ich kann keinen Code finden, der den Text überschreibt :( – jrounsav

+2

Zusätzlich zum @ Habib nützlichen Rat, ruft 'lblSesameSeedTotal.Refresh()' nach dem Setzen der Textwerthilfe? – dash

Antwort

12

Ohne mehr über die Struktur des Formulars zu wissen, und wie Sie Ihren Code aufrufen, ist es schwer, Sie andere Ratschläge andere zu geben als versuchen, nach dem Einstellen des Textes lblSesameSeedTotal.Refresh() aufzurufen.

Aufruf Refresh (MSDN Control.Refresh Link) effektiv das Steuerelement ungültig und zwingt die Laufzeit, das Steuerelement neu zu zeichnen, die natürlich das Aktualisieren des Texts enthält.

Es gibt viele Gründe, warum Sie dies tun müssen; Das Neuzeichnen ist eine teure Operation. Wenn Sie also ein Ereignis anderswo auf dem Formular behandeln, werden bestimmte Steuerelemente möglicherweise nicht aktualisiert. Dies gilt insbesondere für Beschriftungen und ähnliche Steuerelemente, deren Werte im Allgemeinen konstant bleiben (z. B. eine Beschriftung für ein Textfeld mit dem folgenden Text: Geben Sie hier den Namen ein, der nicht wirklich geändert werden muss).

Verwandte Themen