対象の文字が入力されたら・・・ への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 鍵  ()
投稿日時
2008/9/13 19:03:00
こんにちは。
TextChangedイベントでなくてもいいのならば、
KeyDownイベントで押されたキーを判定するというのは
どうでしょう。
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyData = Keys.OemPeriod + Keys.Shift Then
MsgBox(">が追加されました。")
End If
End Sub
TextChangedイベントでなくてもいいのならば、
KeyDownイベントで押されたキーを判定するというのは
どうでしょう。
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyData = Keys.OemPeriod + Keys.Shift Then
MsgBox(">が追加されました。")
End If
End Sub
投稿者 あにす  ()
投稿日時
2008/9/13 18:47:00
こんな感じかなっと…
Option Strict Off
Public Class Form1
Dim 前回の文字列 As String = ""
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles TextBox1.TextChanged
Dim TextBox As TextBox = sender
If 追加文字の抽出(前回の文字列, TextBox.Text) = ">"c Then
MsgBox(">が追加されました。")
End If
前回の文字列 = TextBox.Text
End Sub
Private Function 追加文字の抽出(ByVal 変更前 As String, ByVal 変更後 As String) As Char
If 変更後.Length < 変更前.Length Then
Return Nothing
End If
For I As Integer = 0 To 変更前.Length - 1
If 変更前(I) <> 変更後(I) Then
Return 変更後(I)
End If
Next
Return 変更後(変更後.Length - 1)
End Function
End Class
Option Strict Off
Public Class Form1
Dim 前回の文字列 As String = ""
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles TextBox1.TextChanged
Dim TextBox As TextBox = sender
If 追加文字の抽出(前回の文字列, TextBox.Text) = ">"c Then
MsgBox(">が追加されました。")
End If
前回の文字列 = TextBox.Text
End Sub
Private Function 追加文字の抽出(ByVal 変更前 As String, ByVal 変更後 As String) As Char
If 変更後.Length < 変更前.Length Then
Return Nothing
End If
For I As Integer = 0 To 変更前.Length - 1
If 変更前(I) <> 変更後(I) Then
Return 変更後(I)
End If
Next
Return 変更後(変更後.Length - 1)
End Function
End Class
投稿者 あにす  ()
投稿日時
2008/9/13 18:20:00
文字列が変更されるたびに文字列を保持しておいて、
前回の文字列と比較してはいかがでしょうか?
前回の文字列と比較してはいかがでしょうか?
投稿者 モリオ  ()
投稿日時
2008/9/13 03:35:00
こんにちは。
早速ですが、よろしくお願いします。
各サイトを見てまわったのですが、
テキストボックスが変更されたときに何かをすることは
Changeでできますが、
対象の文字、今回は">"が入力されたかどうか。
また入力されたときに例えばMsgBoxを表示などはどうすればよいのでしょうか?
教本?ではないですが、VBの本にものっておらず、
あるサイトでは、Changeのことはいちおう書いてあったのですが、詳しく書いておらず、
またこちらのサイト内も拝見しましたが、特定の文字が・・・ということがわからなかったのです。
どなたか教えていただけますでしょうか。
よろしくお願いします。
早速ですが、よろしくお願いします。
各サイトを見てまわったのですが、
テキストボックスが変更されたときに何かをすることは
Changeでできますが、
対象の文字、今回は">"が入力されたかどうか。
また入力されたときに例えばMsgBoxを表示などはどうすればよいのでしょうか?
教本?ではないですが、VBの本にものっておらず、
あるサイトでは、Changeのことはいちおう書いてあったのですが、詳しく書いておらず、
またこちらのサイト内も拝見しましたが、特定の文字が・・・ということがわからなかったのです。
どなたか教えていただけますでしょうか。
よろしくお願いします。
変更前と変更後を比べるのですか。
なるほど。勉強になりました。
コードも載せていただきありがとうございました。
<鍵さん
テキストボックスでなくキーで判断するのですね。
キーコード?がわからなくその方法は断念していたのですが、わかりました。
また、コードを載せていただきありがとうございました。
もっと勉強していきたいと思います。
お二人とも本当にありがとうございました。