2016-12-03 55 views
0

我有兩個文本框,我不想用第三個顯示結果。 方案是textbox1是totalFeetextbox,textBox2是DiscountTextBox。 我希望用戶在discountTextBox中輸入金額並在TotalFeeTextBox中查看結果,當用戶刪除金額時,TotalFeeTextbox應顯示原始金額,即在計算之前顯示原始金額。將舊值返回到第一個文本框

這是我嘗試了TextChanged事件的代碼中的一個:

try 
{ 
    String tempStore = TotalFeeTextBox.Text; 

    if (DiscountTextBox.Text.Length != 0) 
    { 
     TotalFeeTextBox.Text = (TotalFeeTextBox.Text - DiscountTextBox.Text).toSting(); 
    } 
    else 
    { 
     TotalFeeTextBox.Text = tempStore; 
    } 
} 
catch (ApplicationException ex) 
{ 
    //Catch error if one is still thrown after above code; Not pretty, exceptions are costly performance wise. 
    MessageBox.Show("ERROR" + ex.Message, "ERROR"); 
} 

反正是有把它做什麼,我上面所述?

+0

商店tempstore了一項功能,它只設置一次。 – Crowcoder

+0

無關:刪除'try ... catch'。你想獲得關於異常的所有可能的信息,如果這將被拋出。顯示消息將無濟於事,因爲它沒有告訴你行和隱藏StackTrace – Fabio

回答

0

你寫的代碼有一些問題。首先將字符串視爲數字,然後使用文本框來存儲值。你應該使用變量。下面的代碼將接近你所需要的。

首先添加兩個屬性,並填補他們與你需要的值

float total; 
float discount; 

然後你從不同的範圍內處理的文本改變事件DiscountTextBox中包含

private void DiscountTextBox_TextChanged(object sender, EventArgs e) 
{ 
    if(!string.IsNullOrEmpty(DiscountTextBox.Text)) 
    { 
     discount = float.Parse(DiscountTextBox.Text); 
    } 
    else 
    { 
     discount = 0; 
    } 

    TotalFeeTextBox.Text = (total - discount).ToString(); 
} 
+0

仍然相同的問題。 TotalFeeTextBox不顯示原始值,如果discountTextBox被清除,並且計算是錯誤的,如果我嘗試更正金額。 – Omer

+0

查看修改。如果您需要更多的信息,您可能需要發佈一些更多的代碼,以瞭解它的結構。 – Emad

相關問題