C# 如何找到WPF文本框';什么是更改的文本?
假设我们从WPFC# 如何找到WPF文本框';什么是更改的文本?,c#,wpf,textbox,custom-controls,textchanged,C#,Wpf,Textbox,Custom Controls,Textchanged,假设我们从WPFTextBox继承,然后尝试通过重写OnTextChanged来获得文本更改 然后我们会注意到什么时候发生了变化,但我们唯一能得到的信息是: 发生此更改的偏移量 删除长度 附加长度 我们可以使用 Text.Substring(Change.Offset, Change.AddedLength) 在OnTextChanged 文本更改发生在不同的条件下(例如用户输入、粘贴文本或设置代码中的Text属性)。e.changes中是否存在冲突变更的可能性 这是一种信任方式吗?如果
TextBox
继承,然后尝试通过重写OnTextChanged
来获得文本更改
然后我们会注意到什么时候发生了变化,但我们唯一能得到的信息是:
- 发生此更改的偏移量
- 删除长度
- 附加长度
Text.Substring(Change.Offset, Change.AddedLength)
在OnTextChanged
文本更改发生在不同的条件下(例如用户输入、粘贴文本或设置代码中的Text
属性)。e.changes
中是否存在冲突变更的可能性
这是一种信任方式吗?如果答案是“否”,是否有其他标准方法可以获得准确的更改文本?我用一个文本框和一个标签制作了一个简短的测试程序,但我找不到您描述的问题。如果我像下面这样为TextBox实现TextChanged事件,即使我粘贴了一些东西,它也会工作。需要检查null,因为如果TextBox具有初始值,initilize方法将在创建标签之前触发更改事件
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox tbSource = (sender as TextBox);
if (lblOutput == null)
return;
lblOutput.Content = tbSource.Text;
}
对于文本框,当其文本更改时发生此事件;对于RichTextBox,当任何内容或格式发生更改(例如,图像、表格或背景色)时,会发生此事件
- 发生的更改会导致文档处于有效状态。 集合是连续排序的,与控件中发生更改的位置有关。例如,TextChange对象 表示位置2的更改在文本更改之前 对象,表示位置10处的更改
- 两个TextChange对象不表示重叠区域。偏移值加上一个文本更改的AddedLength值
对象始终小于或等于偏移的值
集合中的下一个TextChange对象。同样地,
偏移量加上一个TextChange对象的RemovedLength值为
始终小于或等于下一个的偏移值
集合中的TextChange对象 - 集合反映了发生的任何变化,即使看起来没有净变化。在前面的示例中,
第一个或第四个变化导致净变化,因为每个变化都只是
分别删除和重新添加和符号。但是
这些符号实际上已被删除和添加,因此它们包含在
收藏