2013-04-01 18 views
8

Mam ustawiony program C#, który ma akceptować wprowadzoną ilość, jeśli pole wyboru jest zaznaczone. Następnie mnoży ilość przez cenę i aktualizuje odpowiednią etykietę całkowitym kosztem.Dlaczego moja aktualizacja wartości tekstu etykiety C# nie jest aktualizowana?

Jednak po uruchomieniu programu nie aktualizuje etykiety. Uruchomiłem debuggera, a wartość etykiety .text w systemie jest poprawna, ale nadal nie pojawia się w rzeczywistym formularzu.

Czy w programie Visual Studio istnieje właściwość label, która zapobiega renderowaniu zmian?

oto fragment odpowiedzialny za aktualizację wartości label.Text

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

Upewnij się, że nie resetujesz wartości 'lblSesameSeedTotal.Text' później w kodzie, także jakiego rodzaju aplikacji kierujesz na winfomr, wpf? sieć? – Habib

+0

@Habib winform, i nie mogę znaleźć żadnego kodu zastępującego tekst :( – jrounsav

+2

Oprócz użytecznej porady @ Habib, czy wywołanie 'lblSesameSeedTotal.Refresh()' po ustawieniu wartości tekstowej pomoże? – dash

Odpowiedz

12

Nie wiedząc więcej o strukturze swojej postaci, i jak ty dzwonisz kodu, trudno dać żadnej innej rady innych niż próba wywołania lblSesameSeedTotal.Refresh() po ustawieniu tekstu.

Wywołanie odświeżania (łącze MSDN Control.Refresh) skutecznie unieważnia kontrolkę i wymusza na środowisku wykonawczym ponowne rysowanie kontrolki, co oczywiście obejmuje również aktualizację jej tekstu.

Istnieje wiele powodów, dla których może to być konieczne; przerysowanie jest kosztowną operacją, więc generalnie, jeśli przetwarzasz zdarzenie w innym miejscu formularza, może ono nie aktualizować niektórych kontrolek. Dotyczy to w szczególności etykiet i podobnych elementów sterujących, których wartości pozostają niezmienne (np. Etykieta dla pola tekstowego z tekstem: Enter Name Here tak naprawdę nie musi się zmieniać).

Powiązane problemy