ユーザーが各数値を次の形式で入力するときに、数値の形式を確認したい。小数点の3桁前、およびポイントの1桁後(存在する場合)
ユーザーが3桁を入力した瞬間、小数点を追加しようとしています。ユーザーが番号を入力したときに発生するイベントはありますか?
TextInputイベントとTextInputStartイベントが期待どおりに機能しません。332と入力しようとすると、233と表示されます。TextInputStartイベントで次の関数が呼び出されます。
private void TestFunction(object sender, TextCompositionEventArgs e)
{
TextBox txtbox = e.OriginalSource as TextBox;
string r = txtbox.Text;
if(r.Contains('.'))
{
for (int i = 0; i < r.Length; i++)
{
if (r.Substring(i, 1) == ".")
{
txtbox.Text = r.Substring(0, i + 2);
}
}
}
if (r.Length == 2 && r[2] != '.')
{
r += ".";
txtbox.Text = r;
}
}
debugginに気付いたのですが、TextInputStartが起動され、テキストボックスには最後に入力された文字列ではなく、前の文字列が含まれています。
どうにか?:(