2011-09-04 148 views
0

有沒有辦法讓標籤自動更新,以便我不必使用按鈕發送命令。我設置的是小計文本框,折扣文本框,稅標,發貨文本框和總標籤。所以,當人們填寫小計,折扣和運費時,我想要計算稅收標籤,但前提是以前在表單的另一部分中選擇了某個州。那麼,在所有這些填充的情況下,我希望總標籤被填充。所有這些我知道我可以使用按鈕,但我想知道是否有方法在Visual Studio中使用C#自動化它。沒有按鈕的更新標籤

謝謝。

+3

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

+0

@SLaks:它是一個WinForms – cb1295

回答

2

我使用TextChanged事件來更新文本框對之間的這種值。下面是我的一些代碼提取物:

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

updateDistanceAndBearing做了一些錯誤檢查 - 這可能是一個好主意,如果用戶可以把無效的值,然後更新其他文本框 我有文本框的Text屬性但改爲更新label.Text屬性。

它變得更加雜亂(至少我發現它的話),如果你有數字updowns獲得價值

+0

好的,所以它在文本框之間運行,所以我想我可以檢查它以確保所有值都已填充,正如您所說的,使用有效值。謝謝,我會稍微嘗試一下。 – cb1295

+0

是的,您可以在鍵入時驗證文本框。有NET中的ErrorProvider可以使用http://msdn.microsoft.com/en-us/library/system.windows.forms.errorprovider(v=VS.90).aspx – ScruffyDuck

1

您可以調用一個方法來更新控件的更改事件中的標籤。

欲瞭解更多詳情,請提供更多詳情。

1

這是把我的頭頂部,但應該讓你很接近......

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

謝謝,希望我可以選擇兩個答案已經選擇了另一個,但是這個也很好。 – cb1295