我有一個帶有 3 個文本框的 wpf 表單,我應該寫多少張票,然后我想將該數字乘以一個值最后我有另一個文本框,我想要來自 3 個文本框的總和,即使只有 1 個有值
我試過這個:
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox2.Text))
textBox3.Text = (Convert.ToInt32(textBox1.Text) Convert.ToInt32(textBox2.Text)).ToString();
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox2.Text))
textBox3.Text = (Convert.ToInt32(textBox1.Text) Convert.ToInt32(textBox2.Text)).ToString();
}

不能讓它作業請幫助
uj5u.com熱心網友回復:
要將字串值轉換為整數值,您可以使用int.Parse方法。另一方面,此方法(也Convert.ToInt32)要求您確保字串始終處于良好的格式以進行轉換。如果您不確定和/或您知道字串的格式可能不正確,您可以使用int.TryParse方法,該方法回傳真/假值,說明轉換是否成功,如果成功也給出所需的值。如果失敗,您將獲得默認值 - 0。
如果所有文本框都遵循相同的程序,您可以只創建一個TextChanged事件并將其系結到所有文本框。
private void textBox1_TextChanged(object sender, EventArgs e)
{
int sum = 0;
if (!string.IsNullOrEmpty(textBox1.Text) && int.TryParse(textBox1.Text, out int gold_ticket_count))
{
sum = 120 * gold_ticket_count;
}
if (!string.IsNullOrEmpty(textBox2.Text) && int.TryParse(textBox2.Text, out int silver_ticket_count))
{
sum = 60 * silver_ticket_count;
}
if (!string.IsNullOrEmpty(textBox3.Text) && int.TryParse(textBox3.Text, out int big_show_ticket_count))
{
sum = 500 * big_show_ticket_count;
}
// do smth with the sum...
}
檢查我是否正確命名了 textBoxes。給控制元件起一個有意義的名稱是一種很好的做法。
int.Parse檔案:https ://learn.microsoft.com/en-us/dotnet/api/system.int32.parse?view=net-6.0 檔案:
httpsint.TryParse : //learn.microsoft.com/en-us/dotnet/api /system.int32.tryparse?view=net-6.0
uj5u.com熱心網友回復:
一個丑陋,快速和骯臟但有效的解決方案:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private int sum1;
private int sum2;
private int sum3;
private int overallSum;
private void tb1_TextChanged(object sender, TextChangedEventArgs e)
{
if (int.TryParse(tb1.Text, out int tb1Value))
sum1 = tb1Value * 120;
else
sum1 = 0;
sum_1.Text = sum1.ToString();
RecalcOverallSum();
}
private void tb2_TextChanged(object sender, TextChangedEventArgs e)
{
if (int.TryParse(tb2.Text, out int tb1Value))
sum2 = tb1Value * 120;
else
sum2 = 0;
sum_2.Text = sum2.ToString();
RecalcOverallSum();
}
private void tb3_TextChanged(object sender, TextChangedEventArgs e)
{
if (int.TryParse(tb3.Text, out int tb1Value))
sum3 = tb1Value * 120;
else
sum3 = 0;
sum_3.Text = sum3.ToString();
RecalcOverallSum();
}
private void RecalcOverallSum()
{
overallSum = sum1 sum2 sum3;
overall_sum.Text = overallSum.ToString();
}
}
順便說一句:我建議使用 MVVM 而不是后面的代碼,但我知道這不是問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/513325.html
標籤:C#wpf
