我尝试进行一些格式化,并且我的格式化结果工作正常。问题是它是一个带有 Textbox LostFocus 和 GotFocus 事件的循环。所以在调试中它会互相跳转,我不知道我做错了什么。
NUMBERS 的转换工作正常,这只是循环。所以当我用鼠标点击文本框时它开始:txtBase2
它进入 txtBase2_GotFocus 事件行 8
然后执行第 9 行
然后跳转到 txtBase2_Lostfocus 方法到第 3 行
然后再回到 txtBase2_GotFocus 方法到 lin8。
以上 4 个步骤仍在循环中......并且它不会停止我做错了什么?或者我没看到的东西是什么?
ps:转换是针对金额值完成的。
整个想法是:
当用户在文本框中输入金额并离开文本框时,其格式应为:1.245,12(带千位分隔符)
当用户离开文本框并且有数量/数字时,文本框数字的格式应为 1245,12(不带千位分隔符)
格式转换工作正常,但它与这两个事件循环在一起!!!!!!
Winforms、C#、.NET 4.5
请指教?
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
txtBase2.LostFocus += txtBase2_LostFocus;
txtBase2.GotFocus += txtBase2_GotFocus;
}
private void txtBase2_LostFocus(object sender, EventArgs e)
{
Line 1:/ /when leaving the TEXTBOX
Line 2: //input: 1234,56
Line 3: double toDouble = Convert.ToDouble(txtBase2.Text);
Line 4: string jj = toDouble.ToString("n", System.Globalization.CultureInfo.GetCultureInfo("NL-be"));
//output: 1.234,56
Line 5: txtBase2.Text = jj.ToString();
}
private void txtBase2_GotFocus(object sender, EventArgs e)
{
Line 6: //when Entering (get in) the TEXTBOX
Line 7: //input 1.234,56
Line 8: CultureInfo ci = CultureInfo.GetCultureInfo("NL-be");
Line 9: string decimalFormatted = Convert.ToDecimal(txtBase2.Text, ci).ToString();
//Output 1234,56
Line 10: txtBase2.Text = decimalFormatted;
}