textchangeイベントが発生したときに、変更された値と比較したいテキストボックスがあります。Silverlight:textchangeイベントが発生したときに変更前のテキストボックスの値を取得する方法
古い値を取得するにはどうすればよいですか?
textchangeイベントが発生したときに、変更された値と比較したいテキストボックスがあります。Silverlight:textchangeイベントが発生したときに変更前のテキストボックスの値を取得する方法
古い値を取得するにはどうすればよいですか?
TextBoxのKeyDown-Eventを登録してください。これは、キーが押されたときで、TextBoxのTextChanged-Eventが呼び出される前にイベントが発生します。
このイベントでは、TextBoxのText-Propertyを呼び出して現在のテキストを取得できます。
TextBox myTextBox = new TextBox();
myTextBox.KeyDown += KeyDownOnMyTextBox;
myTextBox.TextChanged += TextChangedOnMyTextBox;
string currentText = string.Empty;
string newText = string.Empty;
private void KeyDownOnMyTextBox(object sender, KeyEventArgs e){
currentText = myTextBox.Text;
}
private void TextChangedOnMyTextBox(object sender, TextChangedEventArgs e){
newText = myTextBox.Text;
}
このイベントが発生するたびに値をメモするか、値を割り当てる必要があります。
それを比較することができます。
しかし、KeyDownイベントのイベントユーザーがテキストを削除した場合、それはまだtextChangeイベントに移動し、古い値を取得することができませんtextChangeイベント、「バックスペース」を捉えることができません。 – nixjojo