.Netを使用して画面を作っているのですが、
画面のテキストボックスに、数値のみを入力させていんですが、
プロパティーとかで設定できなくて困っています。
やりたいことは、VB6かでできていたFormatのようなことなのですが、
.Netでは何を設定すればいいのでしょうか。
教えてください。
よろしくお願いします。
ちろっとググって見ました。
[数値のみ VB.NET]
で
HIRO's.NET > 公開 Tips 一覧で紹介されているようです。
>いなさん
ありがとうございます。
教えていただいた所のサイトのでやってみたのですが、
自分で「半角/全角」を切り替えちゃうと、入っちゃうんですよね。。。
絶対に数値だけ(あとは「-」のみ)にしたいんですが、
.Netではできないんですかね・・・。
困った。。
>自分で「半角/全角」を切り替えちゃうと
ってのがよくわかりませんが、
TextBoxを継承して、WndProcをオーバーライドし、WM_CHAR,WM_PASTEあたりを捕まえて
自前でOK/NGを判定するならば、こちらが参考になります。
数字または一部の文字しか入力できないようにする
http://jeanne.wankuma.com/tips/textbox/permitchars.html
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
上の記述の追加
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のみ入力可能
>自分で「半角/全角」を切り替えちゃうと、入っちゃうんですよね。。。
テキストボックスのプロパティでIMEを無効にできませんか?
って最近同じ質問が多発しt(ry
あいうえおさんおご指導通りやってみたのですが、
「半角/全角」ボタンを押しちゃうと、切り替わって、入力できてしまうんです。
「半角/全角」ボタンのイベントって取れないんですか?
.NetってChangeイベントないんですか?
通ってみた氏がおしゃるように
テキストボックスのプロパティでIMEを無効にしてください。
テキストボックスのプロパティーのIMEを無効にすると、
最初は無効になっているので、やりたいことができるのですが、
結局「半角/全角」ボタンを押しちゃうと、切り替わって、入力できてしまうんです。
でも、なんとかみなさんのご指導で出来そうなので、
一旦解決とさせていただきます。
ご指導ありがとうございました。
> 最初は無効になっているので、やりたいことができるのですが、
ImeMode が、Off や NoControl に設定されていたりはしませんか?
ツイート | ![]() |