テキスト ボックスの KeyPress イベントでメソッドを実行していますが、実際にキーがボックスに入力される前にメソッドが実行されています。
KeyUp を使用すると、探している動作が得られます。ただし、KeyUp は標準文字と同様にソフト キーでトリガーされますが、これは特に役に立ちません。
キーがボックスに入力された後に KeyPress を実行することはできますか? または、KeyUp でソフト キーを無視するように簡単に設定できますか?
KeyPress イベントで keychar を記憶し、記憶された char を使用して KeyUp で必要なすべてのロジックを実行できます。
キープレスイベントでは、新しい文字列に連結textbox.Text
しe.KeyChar
て処理し、この新しい文字列を処理できます。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
string newString = textBox1.Text + e.KeyChar.ToString();
// Process newString
// If after processing you do not wish to undo the typed letter do
// e.Handled = true;
}
TextChanged
コントロールからイベントを試すこともできますtextbox
。
as コードで keyUp を使用します。
private void textBox1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
//only do things when an alphabetical character is typed
if ((e.KeyCode >= Keys.a) && (e.KeyCode <= key.z) ||
(e.KeyCode >= Keys.A) && (e.KeyCode <= key.Z))
{
// do your thing
}
}
もちろん、 のような他の文字も確認できます。等