
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ランキング
-
エクセルVBAでテキストボッ...
-
VBAのフォーム カーソル移動
-
【VB.NET】テキストボックスに...
-
VB2005テキストボックスへのコ...
-
テキストボックス内の簡単な計算
-
ユーザーフォームへのデータ入...
-
VBAのユーザーフォームで、テキ...
-
他のフォームから別のフォーム...
-
String型の値にスラッシュをつ...
-
チェックボックスを操作できな...
-
ClickとChangeイベントの違いは...
-
VBA public変数はどのようなこ...
-
プロシージャまたは関数の引数...
-
C#のループでtextboxに値を入れ...
-
ドラゴン曲線を再帰で書く
-
【VB6.0】 あるフォームから他...
-
VS CodeでTEXファイルにPDF形式...
-
Excel VBA: private sub 内の...
-
ExcelのVBAで文章にある複数の...
-
tranlate関数で特定の文字を取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでテキストボッ...
-
アクセスできない保護レベルエ...
-
ユーザーフォームへのデータ入...
-
【VB.NET】テキストボックスに...
-
VBAで入力数値について
-
コンボボックスからテキストボ...
-
VBAのユーザーフォームで、テキ...
-
AccessのVBAで「イベ...
-
visual basic初心者です。 visu...
-
ループを使ってテキストボック...
-
Excel ユーザーフォームで計算 ...
-
VBAで選択箇所がある場合の重複...
-
基本的な質問で本当に申し訳あ...
-
時間の計算
-
Vba テキストボックスの文字列...
-
Web Browserで、、、
-
VisualBasic2008でのツールの扱...
-
16進数
-
エクセル VBA タブストップに...
-
VBでテキストボックスの文字を...
おすすめ情報