
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#1さん同様、第一に「NumericUpDown」を推奨いたします。
もっとカスタマイズ性を高めたいのであれば、ユーザコントロールの自作がお勧めです。
サンプルはテキストボックスを継承した、簡単なユーザコントロール作成方法です。
ペーストだけに対応しています。
判定は適当に「数字」というアバウトな条件で行っております。
※1.クラスの作成[TextNumBox.vb]
Public Class TextNumBox
Inherits TextBox
Private Const WM_PASTE As Integer = &H302 '張り付け
Protected Overrides Sub WndProc(ByRef m As Message)
Select Case m.Msg
Case WM_PASTE
Dim l_objData As IDataObject = Clipboard.GetDataObject()
If l_objData.GetDataPresent(DataFormats.Text) Then
Dim l_str文字 As String = CType(l_objData.GetData(DataFormats.Text), String)
If Not 判定_WM_PASTE(l_str文字) Then
m.Result = IntPtr.Zero
Exit Sub
End If
End If
End Select
MyBase.WndProc(m)
End Sub
Private Function 判定_WM_PASTE(ByVal p_strValue As String) As Boolean
'数字構成判定
Return System.Text.RegularExpressions.Regex.IsMatch(p_strValue, "[\d]")
End Function
End Class
※2.画面(Form1)にテキストボックスを作成
仮にTextBox1を作成したとします。
※3.[Form1.Designer.vb]の編集
>Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
を
Friend WithEvents TextBox1 As TextNumBox
へ
>Me.TextBox1 = New System.Windows.Forms.TextBox
を
Me.TextBox1 = New TextNumBox
へ
No.1
- 回答日時:
全く気乗りしないなぁ。
NumericUpDownを使えばそれが数値であるか検証する必要がないわけだから。
http://msdn.microsoft.com/en-us/library/system.w …
TextBoxでやるなら、「コピーを制御する」とかそういう考え方じゃなくて
Validatingイベントで待ち受けたほうがいいだろう。
http://msdn.microsoft.com/en-us/library/system.w …
最悪でもTextChangedイベントだ。
http://msdn.microsoft.com/en-us/library/system.w …
#NumericUpDownを使うべき、って思っていてこれはそれほど難しくないから、後者用のコードは敢えて書かない
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA セルの値がおかしいです
-
VBA セル間のリンク修正につい...
-
VBAでCOPYを繰り返すと、処理が...
-
VBAから書き込んだ条件付き初期...
-
WindowsのOutlook を VBA から...
-
マクロの記録を使用したマクロ...
-
vbsでのwebフォームへの入力制限?
-
ダブルクリックで貼り付けた画...
-
エクエルのVBAコードについて教...
-
ExcelのVBAコードについて教え...
-
vbs ブック共有を解除
-
VBAでFOR NEXT分を Application...
-
Excelのマクロについて教えてく...
-
Vba WorkBooks.Openについて教...
-
Vba 型が一致しません(エラー1...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
[Excel VBA]特定の条件で文字を...
-
【VBA】値を変更しながら連続で...
-
vba textboxへの入力について教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスできない保護レベルエ...
-
visual basic初心者です。 visu...
-
エクセルVBAでテキストボッ...
-
【VB.NET】テキストボックスに...
-
VBAで入力数値について
-
ユーザーフォームへのデータ入...
-
VBSのプログラム
-
VBでの入力値制限について
-
VBAで選択箇所がある場合の重複...
-
【C#】コンボボックスにおけるS...
-
コンボボックスからテキストボ...
-
Excel ユーザーフォームで計算 ...
-
テキストボックスを空白にする方法
-
整数かどうかチェックする
-
VBA 文字列から日付に変更
-
VBAのユーザーフォームで、テキ...
-
VB2005テキストボックスへのコ...
-
visual studio 2008 C# で、値...
-
TextBoxの内容を右寄せ
-
VBでローマ字入力とかな入力を...
おすすめ情報