键入时更改符号并继续键入

时间:2014-04-01 17:42:24

标签: c# replace

我必须用,替换每个.并能够继续输入。 我正在使用下面的代码并且它可以工作,但光标位于文本的前面。

private void textBox7_TextChanged(object sender, EventArgs e)
{
    textBox7.Text = textBox7.Text.Replace(",",".");
}

有没有人知道如何解决这个问题?我希望能够在更换后继续输入。

3 个答案:

答案 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 = '.';
        }
    }

这将回显新字符而不是键入的字符,用户可以继续输入。