フォーマットを実行しようとしましたが、フォーマットの結果は正常に機能しています。問題は、Textbox LostFocus および GotFocus イベントのループです。そのため、デバッグでは互いにジャンプしていて、何が間違っているのかわかりません。
NUMBERS の変換は正常に機能しています。これは単なるループです。テキストボックスをマウスでクリックすると開始されます:txtBase2
txtBase2_GotFocus イベント行 8 に入ります。
次に9行目が実行されます
次に、3行目のtxtBase2_Lostfocusメソッドにジャンプします
その後、再びlin8へのtxtBase2_GotFocusメソッドに戻ります。
これらの上記の 4 つの手順はループのままです...そして停止しません。何が間違っていますか? または、私が見ていないものは何ですか?
ps: Amount 値に対して変換が行われます。
全体のアイデアは次のとおりです。
ユーザーがテキストボックスに金額を入力し、テキストボックスを離れると、次のようにフォーマットする必要があります: 1.245,12 (桁区切りあり)
ユーザーがテキストボックスを離れ、金額/数字がある場合、テキストボックスの数字は 1245,12 のようにフォーマットする必要があります (千区切りなし)
フォーマットの変換は正常に機能しますが、これらの 2 つのイベントとループしています!!!!!
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;
}