アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめて質問させていただきます。
現在、VB2005を使ってプログラムを組んでいるのですが、半角カタカナだけをTextBoxに入力し、表示する方法がわかりません。

Private Sub TextBox6_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox6.KeyDown
TextBox6.ImeMode = Windows.Forms.ImeMode.KatakanaHalf
End Sub
Private Sub TextBox6_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox6.KeyPress
If (e.KeyChar < "ア"c Or e.KeyChar > "-"c) And e.KeyChar <> vbBack Then
e.Handled = True
End If
End Sub
↑見にくいかもしれませんがコードです。

この方法ではだめなのでしょうか?
回答をお願いします

A 回答 (3件)

回答2のdevilconanです。

追記しておきます。

ネットでサクッと調べてみました。
このコードを入れてみてはいかがでしょうか?
私の環境ではうまくいきましたんでたぶん大丈夫だと思います。

テキストボックス(今回ならtextbox6かな?)のキープレスイベントを追加して

Dim CharTable As String = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン"

If InStr(CharTable, e.KeyChar) = 0 Then
e.Handled = True
End If


を入れてみて下さい。
    • good
    • 1
この回答へのお礼

devilconan様

ありがとうございます。
おかげさまで思った通りのプログラムが作成できました!
本当にありがとうございました!

お礼日時:2010/01/27 16:38

回答1のdevilconanです。

追記しておきます。
コードで書くのであれば、キープレスやキーダウンイベントではなく、formのロードイベントに書けば半角カナで動くと思いますよ。


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.ImeMode = Windows.Forms.ImeMode.KatakanaHalf
End Sub

この回答への補足

devilconan様
ありがとうございます。
おっしゃられた通りのコードでちゃんと入力することができました。

すみませんがあと一つだけ質問させてください。
いろいろとテストデータをつくってみたのですが、/や*などの記号も入ってしまうことがわかりました。

これらの記号も入力できないようにする方法はあるんでしょうか?
本当に何度も質問してしまいすみません・・・

補足日時:2010/01/27 16:11
    • good
    • 0

これってWindowsアプリケーションでいいんですよね?WebだとJavascriptを使うとは思ったら良かったと思います。

(うるおぼえですが・・)

私はデザインビューからtextboxのプロパティでImeModeをKatakanaHalfに変更したらできました。
特にコードは書いてません・・。

ちなみに環境はvs2008です。

この回答への補足

devilconan様
回答ありがとうございます。

おっしゃられる通りWindowsアプリケーションで作成しています。すみません。
プロパティの件は最初からやっていました。

捕足になるかもしれませんが、このコードだと入力する際に半角カタカナを入力はできるのですが、Enterを押すとTextBoxの中身が消えてしまいます。
これはどうしてなんでしょうか?
コードの
If (e.KeyChar < "ア"c Or e.KeyChar > "-"c) And e.KeyChar <> vbBack Then
の部分で文字の指定(半角カタカナのみ)をしているのですがこれが間違っているのでしょうか?

補足日時:2010/01/27 15:52
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!