2

我在我的 WPF 应用程序中使用 Scintilla 文本编辑器,我想让用户只编辑空格:插入、删除、替换等。我想处理之前的文本插入事件和之前的文本删除事件,但是没有...我怎样才能防止插入/删除e.Handled = trueTextModifiedEventArgsKeyDown我来说还不够,因为它并不总是代表更改的文本......我尝试了以下代码:

  static void scintilla_BeforeTextModified(object sender, TextModifiedEventArgs e)
    {
        var scintilla = (Scintilla) sender;
        if (scintilla != null)
        {
            if (!string.IsNullOrWhiteSpace(scintilla.Selection.Text) || !string.IsNullOrWhiteSpace(e.Text))
            {
                // flag to ignore the change
                _ignoreTextChanges = true;
                // save text before modified
                _text = scintilla.Text;                  
            }  }

        }   private void _scintilla_TextChanged(object sender, EventArgs e)
    {
        if (!_suspendTextChanges)
        {
            _suspendTextChanges = true;
            if (_ignoreTextChanges)
            {
                _ignoreTextChanges = false;
                Text = _text;

                _scintilla.Text = _text;
            }
            else
            {
                Text = _scintilla.Text;
            }
            _suspendTextChanges = false;
        }
        _ignoreTextChanges = false;
    }   

但是我设置的文本在闪烁中没有改变......有人可以帮助我吗?

谢谢...

4

0 回答 0