私は現在WPFアプリケーションで作業しています。TextBox
には数字の項目しか含めることができません。私は焦点を失ってコンテンツが数値であるのをブロックするときにその内容を検証できることを知っていますが、他のWindowsフォームアプリケーションでは、数値以外の入力を完全にブロックすることはできません。さらに、私たちは多くの場所でそれを参照するために、別のdllにそのコードを置くのに使います。ここでWPFのテキストボックスでの検証
は、2008年にWPFを使用していないコードです:
Public Shared Sub BloquerInt(ByRef e As System.Windows.Forms.KeyPressEventArgs, ByRef oTxt As Windows.Forms.TextBox, ByVal intlongueur As Integer)
Dim intLongueurSelect As Integer = oTxt.SelectionLength
Dim intPosCurseur As Integer = oTxt.SelectionStart
Dim strValeurTxtBox As String = oTxt.Text.Substring(0, intPosCurseur) & oTxt.Text.Substring(intPosCurseur + intLongueurSelect, oTxt.Text.Length - intPosCurseur - intLongueurSelect)
If IsNumeric(e.KeyChar) OrElse _
Microsoft.VisualBasic.Asc(e.KeyChar) = System.Windows.Forms.Keys.Back Then
If Microsoft.VisualBasic.AscW(e.KeyChar) = System.Windows.Forms.Keys.Back Then
e.Handled = False
ElseIf strValeurTxtBox.Length < intlongueur Then
e.Handled = False
Else
e.Handled = True
End If
Else
e.Handled = True
End If
は、WPFでの同等の方法はありますか?これはスタイルであれば気にしませんが、WPFが新しくなっているので、スタイルはあまりにもわかりにくいものです。
私はそれを試みます。 私はそれに事実上何かを加えることができると想像します。たとえば、内部のテキストの最大長さ、これも私が持っていた別の問題です。 –
浮動小数点の最大長(整数部分の最大10進数と最大数) –
はい、添付プロパティは非常に強力で、すべてのタイプの動作を追加することができます。 –