我目前正在编写一个与财务相关的小应用程序,并希望确保我的用户知道如何编写小数值(使用DOT而不是COMMA。)
为了确保输入正确,我已将控件提交给TextChanged事件,如下所示。
// Remove people not knowing how to write decimals.
if (ExpenseValueTB.Text.Contains(',')) {
ExpenseValueTB.Text = ExpenseValueTB.Text.Replace(',', '.');
ExpenseValueTB.Focus();
}
现在这肯定有效,但遗憾的是输入光标会跳回到开头。因此,如果有人想写'15,96',他们最终会写9615。
我环顾四周,但任何其他类似问题都是js或PHP
非常感谢!
答案 0 :(得分:3)
您可以使用TextBox基本方法中的SelectionStart和SelectionLength
if (ExpenseValueTB.Text.Contains(',')) {
ExpenseValueTB.Text = ExpenseValueTB.Text.Replace(',', '.');
ExpenseValueTB.SelectionStart = ExpenseValueTB.Text.IndexOf('.') + 1;
ExpenseValueTB.SelectionLength = 0;
ExpenseValueTB.Focus();
}
但可能你最好的方法是删除简单的TextBox并使用MaskedTextBox,它允许你更好地格式化用户输入
答案 1 :(得分:1)
你在找什么?
ExpenseValueTB.SelectionStart = ExpenseValueTB.Text.Length;