バックスペースキーダウンイベントをトラップするためのテキストボックスkeydownイベントを取得しようとしています。私は、テキストボックスをオーバーライドするクラスを追加して作業しています。私は、テキストボックスがユーザコントロール内にあるクラスと通信する必要があるのです。Silverlight textboxオーバーライド
ユーザーがテキストボックスに... abcdまたはbackspaceと入力すると、私はusercontrolで何かを更新する必要があります。テキストボックスにいくつの文字が表示されているかを表示したいとしましょう。誰かが私にそれを助けることができますか?ここで私はこれまで
Option Strict On
Imports System.Text.RegularExpressions
Partial Public Class Page
Inherits UserControl
Public Sub New()
InitializeComponent()
Dim textbox As New MyTextBox() With {.Width = 300, .Height = 100}
LayoutRoot.Children.Add(textbox)
End Sub
End Class
Public Class MyTextBox
Inherits TextBox
Protected Overrides Sub OnKeyDown(ByVal e As KeyEventArgs)
MyBase.OnKeyDown(e)
If e.Key = Key.Back Then
e.Handled = True
MyBase.OnKeyDown(e)
ElseIf e.Key = Key.Delete Then
e.Handled = True
MyBase.OnKeyDown(e)
End If
End Sub
End Class
おかげ シャノン
これについて私から飛び出す別のことは、同じコードを持つ2つの "if"条件があることです。 "or"を入れてコードを繰り返さないと読みやすくなります(e.Key = Key.Backの場合と同じように).Else e.Key = Key.Delete ...私はそれがあなたのやり方だと思いますそれはVBで) – Rich
あなたはこれを把握しましたか?しかし、おそらく何か..欠けている –