我必须用,
替换每个.
并能够继续输入。
我正在使用下面的代码并且它可以工作,但光标位于文本的前面。
private void textBox7_TextChanged(object sender, EventArgs e)
{
textBox7.Text = textBox7.Text.Replace(",",".");
}
有没有人知道如何解决这个问题?我希望能够在更换后继续输入。
答案 0 :(得分:1)
感谢@kei
private void textBox7_TextChanged(object sender, EventArgs e)
{
textBox7.Text = textBox7.Text.Replace(",",".");
textBox7.Select(textBox7.Text.Length, 0);
}
最简单的方式,正是我想要的。
答案 1 :(得分:0)
这就是我提出的,考虑在TextBox的中间输入
private void textBox1_TextChanged(object sender, EventArgs e)
{
var t = (sender as TextBox);
var s = t.Text.IndexOf(",");
if (s > -1)
{
t.Text = t.Text.Replace(",", ".");
t.SelectionStart = s+1;
}
}
但可能还有其他一些注意事项,例如粘贴文本
答案 2 :(得分:0)
如果您使用KeyPress事件,您可以动态更改角色:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar == ',')
{
e.KeyChar = '.';
}
}
这将回显新字符而不是键入的字符,用户可以继续输入。