テキストボックスに数値だけ入力させる方法

解決


初心者  2006-09-29 04:37:16  No: 133457

.Netを使用して画面を作っているのですが、
画面のテキストボックスに、数値のみを入力させていんですが、
プロパティーとかで設定できなくて困っています。

やりたいことは、VB6かでできていたFormatのようなことなのですが、
.Netでは何を設定すればいいのでしょうか。

教えてください。
よろしくお願いします。


いな  2006-09-29 07:40:45  No: 133458

ちろっとググって見ました。
[数値のみ  VB.NET]

HIRO's.NET > 公開 Tips 一覧で紹介されているようです。


初心者  2006-09-29 19:58:31  No: 133459

>いなさん

ありがとうございます。
教えていただいた所のサイトのでやってみたのですが、
自分で「半角/全角」を切り替えちゃうと、入っちゃうんですよね。。。

絶対に数値だけ(あとは「-」のみ)にしたいんですが、
.Netではできないんですかね・・・。

困った。。


Blue  2006-09-29 21:56:17  No: 133460

>自分で「半角/全角」を切り替えちゃうと
ってのがよくわかりませんが、
TextBoxを継承して、WndProcをオーバーライドし、WM_CHAR,WM_PASTEあたりを捕まえて
自前でOK/NGを判定するならば、こちらが参考になります。
数字または一部の文字しか入力できないようにする
http://jeanne.wankuma.com/tips/textbox/permitchars.html


あいうえお  2006-09-29 23:42:18  No: 133461

keyPressイベントを利用
Private Sub txt_KeyPress(ByVal sender As Object,
 ByVal e As System.Windows.Forms.KeyPressEventArgs) 
      Handles  txt.KeyPress
    e.Handled = comKeyCharLimitB(CK_INDAT_TYPE.INDAT_TYP_HAN_ALPNUM, e.KeyChar)
  End Sub


あいうえお  2006-09-29 23:47:14  No: 133462

上の記述の追加
    Public Function comKeyCharLimitB(
ByVal penmCkTyp As CK_INDAT_TYPE, ByVal pkeyChar As Char) As Boolean
        Dim retB As Boolean = False
        Select Case penmCkTyp
            Case CK_INDAT_TYPE.INDAT_TYP_HAN_NUM                    ' 半角数字
                If (pkeyChar < "0"c Or pkeyChar > "9"c) And pkeyChar <> vbBack Then
                    retB = True
                End If
       end select
end sub
上記の例では半角数字およびBSのみ入力可能


通ってみた  2006-09-30 05:12:30  No: 133463

>自分で「半角/全角」を切り替えちゃうと、入っちゃうんですよね。。。

テキストボックスのプロパティでIMEを無効にできませんか?

って最近同じ質問が多発しt(ry


初心者  2006-10-03 01:49:36  No: 133464

あいうえおさんおご指導通りやってみたのですが、
「半角/全角」ボタンを押しちゃうと、切り替わって、入力できてしまうんです。
「半角/全角」ボタンのイベントって取れないんですか?


通ってみた  2006-10-03 12:58:52  No: 133465

.NetってChangeイベントないんですか?


あいうえお  2006-10-03 20:22:41  No: 133466

通ってみた氏がおしゃるように
テキストボックスのプロパティでIMEを無効にしてください。


初心者  2006-10-04 22:21:32  No: 133467

テキストボックスのプロパティーのIMEを無効にすると、
最初は無効になっているので、やりたいことができるのですが、
結局「半角/全角」ボタンを押しちゃうと、切り替わって、入力できてしまうんです。
でも、なんとかみなさんのご指導で出来そうなので、
一旦解決とさせていただきます。

ご指導ありがとうございました。


魔界の仮面弁士  2006-10-04 23:25:01  No: 133468

> 最初は無効になっているので、やりたいことができるのですが、

ImeMode が、Off や NoControl に設定されていたりはしませんか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加