110,566
社区成员
发帖
与我相关
我的任务
分享
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox tb = sender as TextBox;
TextChange change = e.Changes.ElementAt(0);
if (change.AddedLength != 0) // 表示有增加
{
string addedStr = tb.Text.Substring(change.Offset, change.AddedLength); // 增加的内容
}
if (change.RemovedLength != 0)// 表示有删除
{
string deleteStr = tb.Text.Substring(change.Offset, change.RemovedLength); // 删除的内容
}
}
[/quote]
这代码还有点问题,因为一进入TextChanged事件后,tb.Text已成为当前的text值,顾应在外面定义一个string值,来存放change之前的tb.Text值,否则进入
if (change.RemovedLength != 0)// 表示有删除
{
string deleteStr = tb.Text.Substring(change.Offset, change.RemovedLength); // 删除的内容
}
这个判断时,会出错。change.Offset值>tb.Text..lengthprivate void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox tb = sender as TextBox;
TextChange change = e.Changes.ElementAt(0);
if (change.AddedLength != 0) // 表示有增加
{
string addedStr = tb.Text.Substring(change.Offset, change.AddedLength); // 增加的内容
}
if (change.RemovedLength != 0)// 表示有删除
{
string deleteStr = tb.Text.Substring(change.Offset, change.RemovedLength); // 删除的内容
}
}