在WinForms中,将输入光标设置在文本后.在文本末尾替换
本文关键字:文本 替换 设置 光标 WinForms 输入 | 更新日期: 2023-09-27 18:13:37
我目前正在编写一个与金融相关的小应用程序,并希望确保我的用户知道如何编写十进制值(使用DOT而不是逗号)
为了确保输入是正确的,我已经将控件提交给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
多谢!
你可以使用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,它允许您更好地格式化用户输入
这是你想要的吗?
<>以前ExpenseValueTB。