我在我的WPF应用程序中使用Scintilla Text Editor,我想让用户只能编辑空格:插入,删除,替换等。
我想处理之前的文本插入事件,并且在scintilla的文本删除事件之前,但是e.Handled = true
没有TextModifiedEventArgs
...如何防止插入/删除? KeyDown
对我来说还不够,因为它并不总是代表文本的变化......
我尝试了以下代码:
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;
}
但我设置的文字在scintilla中并没有改变...... 任何人都可以帮助我吗?
...谢谢