【问题标题】:Change symbol while typing and continue typing键入时更改符号并继续键入
【发布时间】:2014-04-01 17:42:24
【问题描述】:

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

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

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

【问题讨论】:

  • This 可能会对您有所帮助。
  • 您确定这是您使用的代码吗? textBox7.Text.Replace(",",".') 不会更改文本框中的文本。您必须将该方法调用的结果分配给某些东西。
  • @JimMischel Ops,我错过了 textBox7.Text =

标签: c# replace


【解决方案1】:

感谢@kei

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

最简单的方法,正是我想要的。

【讨论】:

    【解决方案2】:

    如果您使用 KeyPress 事件,您可以即时更改字符:

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if(e.KeyChar == ',')
            {
                e.KeyChar = '.';
            }
        }
    

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

    【讨论】:

    • @user3473957 您是否正确添加了事件处理程序?您不能只是复制和粘贴代码。
    【解决方案3】:

    这是我想到的,考虑到在文本框中间输入

        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;
            }
        }
    

    但可能还有其他考虑,比如粘贴文字

    【讨论】:

      猜你喜欢
      • 2020-07-13
      • 2015-05-23
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-31
      相关资源
      最近更新 更多