代码之家  ›  专栏  ›  技术社区  ›  Thomas.Benz

光标跳到编辑器视图上的错误位置

  •  0
  • Thomas.Benz  · 技术社区  · 10 年前

    我正在使用C#和Xamarin编写一个简单的应用程序。通过PCL项目的表单库。应用程序使用编辑器视图,检测输入的“~”(波浪号)字符。使用编辑器视图的TextChanged事件,将“~”字符替换为“|”字符。

    问题是:更新编辑器视图的文本属性后(请参见下面的代码),编辑器视图上的光标会跳到编辑器的最开始位置,而不是停留在编辑器表面上最后键入的字符之后。要继续键入,我必须将光标移到最后一个输入字符的位置之后。任何时候,检测到波浪线“~”,执行后更新逻辑,编辑器视图上的光标再次跳到编辑器的最开始位置。用户必须将其移动到编辑器最后一个输入字符的位置之外。这只虫子让我很烦。

    如何解决光标的错误?我希望它保持在编辑器曲面上最后一个键入的字符之后,以便在检测到波浪线“~”时不需要移动它。

    逻辑背后的代码:

    public void OnTextChanged(object sender, EventArgs e)
    {
       var editor = (Editor)sender;
       if(editor.Text.Contains("~"))
       {
         editor.Text = editor.Text.Replace("~", "|"); // updated the Text of Editor
       }
    }
    
    1 回复  |  直到 10 年前
        1
  •  2
  •   Sven-Michael Stübe    10 年前