前提・実現したいこと
C#と.NetFrameworkを使用してWebフォームアプリケーションを作成しています。
テキストボックスのValidatedイベントを使用し、入力されている文字が変更されている場合、
チェックボックスのチェックをOFFにする処理を実現させたいです。
発生している問題・エラーメッセージ
1.①と②のテキストボックスを用意
2.キーボードIMEを「Google」に設定。
3.テキストボックス①に全角で文字を入力後、Enter を押さずに(変更を確定させない状態で)マウスフォーカスを②のテキストボックスに移動
上記の手順を踏んでValidatedイベントを動作させた時、「テキストボックス①.Text」が入力前と変わらず、
変更チェック処理で入力が変更されていないと判断されてしまいます。
該当のソースコード
C#
1public partial class Form1 : Form 2{ 3 //比較用変数 4 private string preWord = null; 5 6 // コンストラクタ 7 // preWordは最初にテキストボックスに設定する値 8 public Form1(string preWord) 9 { 10 InitializeComponent(); 11 12 this.textBox1.Validated += this.textBox1_Validated; 13 this.preWord = preWord; 14 this.textBox1.Text = preWord; 15 } 16 17 // Validatedイベント 18 //2.キーボードIMEを「Google」に設定。 19 //3.テキストボックス①に全角で文字を入力後、Enter を押さずに(変更を確定させない状態で)マウスフォーカスを②のテキストボックスに移動すると発生 20 private void textBox1_Validated(object sender, EventArgs e) 21 { 22 // 試したこと→ここで SendKeys.Send("{ENTER}")を実行しテキストボックスの内容を確定させようとした。 23 // ここで変更がある時チェックボックスをOFFにしたいが上記手順を踏むと変更チェックがかからない 24 if(!this.textBox1.Text.Equals(preWord) && this.checkBox.Checked == true) 25 { 26 this.checkBox.Checked = false; 27 } 28 } 29} 30
試したこと
マウスフォーカスアウト系のイベントでValidatedが一番最後に動作することを確認
比較前にSendKeys.Send("{ENTER}")を実行してテキストボックスの値を確定させようとした。

回答1件
あなたの回答
tips
プレビュー