我是 devExpress WPF 应用程序的新用户。 我真的很想学习如何检测文本框事件的任何更改?例如;有 2 个文本框 (开发快递) (TXT1,TXT2) .如果我擦除 TXT1 上的值,TXT2 必须擦除自己的值。
诸如此类:
private void txt1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Delete)
{
txt2.Text = String.Empty;
}
}
是真的吗?你可以帮我吗?
如果 txt2 的文本必须与 txt1 中的文本完全相同,请使用绑定:
<TextBox Name="txt2" Text="{Binding ElementName=txt1, Path=Text}"/>
如果您只想获取更改,请尝试以下操作(使用 TextChanged-Event 而不是 KeyDown,因为您也可以将字符串粘贴到文本框中):
string oldtext = "";
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
string removedstring = "";
string addedstring = "";
TextBox source = (TextBox)e.Source;
TextChange t = e.Changes.First();
if (t.RemovedLength > 0)
{
removedstring = oldtext.Substring(t.Offset, t.RemovedLength);
}
if (t.AddedLength > 0)
{
addedstring = source.Text.Substring(t.Offset, t.AddedLength);
}
oldtext = source.Text;
}
如果要设置 txt2。文本 = txt1。按代码显示的文本
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox source = (TextBox)e.Source;
TextChange t = e.Changes.First();
string first = txt2.Text.Substring(0, t.Offset);
string added = source.Text.Substring(t.Offset, t.AddedLength);
string last = (t.Offset+1>tbrt.Text.Length)?"":txt2.Text.Substring(t.Offset, txt2.Text.Length-1);
last = last.Remove(0, t.RemovedLength);
txt2.Text = first + added + last;
}