• 締切済み

c♯テキストボックスの半角カナのみの入力

こんばんは、現在Visual Studio2013でC♯用いてコードを書いています。 そこで困ったことがあるのですが、テキストボックスの入力文字制限で半角カナだけにしたく、コントロールのImeModeプロパティをKatakanaHalfにしたのですが、全角文字も入力出来てしまいます。 ImeModeプロパティのみの変更で半角カナだけの入力が可能だと思ったのですが、他にもプロパティ値を変更する必要はあるのでしょうか?

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

C♯は詳しくないので、エクセルVBAでやってみました。 ただしこの(フォローのつもりのテストが)、的外れかもしれません。 その際はお許しを。 結論は最終的にコードを半角カタカナに強制的にコンバートするのが安全ということを言いたい。 入力開始「当初」のIMEmodeしか保証され無いようだ。他に変更不可までは保証しないようだ。 ーー ユーザーフォームを挿入し、1つのテキストボックスを貼り付け、そのテキストボクスのプロパティのfmIMEmodeをはんかく半角カタカナにしました。入力完了のトリガのため、コマンドボタンも貼りつけました。 ユーザーフォームを表示すると下行のIMEmodeの標示は「 カ(ハンカクコモジ)」になります。 そこでテキストボックスに、半角カナ文字を入れて、コマンドボタンをクリックすると シートのセルに半角カナでセットされました。 ただし、いつもの癖でF7キーを押すと、全角カナ文字になってしまいました。 こうい事もあり、半角カタカナに確実にするには、StrConvに相当するC#の関数(あると思う)で、vbKatakana(VBAの場合です)でかつvbNarrowを指定して変換して、データとしてセットするほうがよいと思います。 VBAの場合は、vbKatakanaはコードが16で,かつvbNarrowはコードが8のようなので、16+8を指定すればよかったように記憶する。

  • hiodraiu
  • ベストアンサー率15% (448/2821)
回答No.2

IMEを制御できたとしても、クリップボードを経由した貼り付けで半角カナ以外の入力が出来てしまいます。 この手の制御は、入力する側の制御ではなく、入力を受け取り側での処理で対応するのが昔からある一般的な方法だと思います。

  • kkkkkm
  • ベストアンサー率65% (1606/2443)
回答No.1

ImeModeプロパティは初期設定(既定設定)で、その後ユーザーの変更を受け付けないというものではなかったと思います。

関連するQ&A

  • テキストボックスの入力制限

    VB2005環境です。 ・全角文字のみ入力を受け付けるテキストボックス ・半角文字のみ入力を受け付けるテキストボックス 以上のような入力制限を持つコントロールを用意したいと思っています。 MaskedTextBoxを用いればできるかと思いましたが、それらしき プロパティが見当たりませんでした。 やはりキーイベントを取得して…ということになるのでしょうか?

  • VB.net、テキストボックス入力制限、全角のみ

    VB.net初心者ですよろしくお願いします テキストボックス入力制限で全角文字のみを以下の方法で実現させました (1)テキストボックス選択時のImeMode初期値を全角ひらがなに設定 (2)ボタン押下時のイベントで入力された文字のサイズを確認し、半角が混ざっていたらエラー これで基本的には問題ないのですが、後学のために入力文字自体を全角のみに制限できないかを調べています いろいろ調査してみて半角のみは可能であることがわかり、実際にコーディングもしてみました しかし全角のみは調査しても情報が見つかりません 全角のみの入力制限が可能かどうか、理由も添えてアドバイスいただけると助かります よろしくお願いします。

  • VB.NET2003 テキストボックスに半角英数字以外入力させない

    お世話になります。 初めてコーディングを行っておりますが、 文字制御についてわからないのでご享受ください。 IMEの設定 Alphaになっているテキストボックスがあります。 こちらに、直接入力や、貼り付けなどで、 全角文字、半角カナが入力されないようにするにはどうしたらよろしいでしょうか? よろしくお願いします。

  • テキストBOXの入力制限について

    テキストBOXを下記のように設定したとします。 <input type="text"name="***" maxlength="30"> この場合は、全角・半角関係なく文字数を30文字入力することができますよね? 今回、私がやりたいことは、バイト数の制限をやりたいんです。 例えばバイト数を30バイトにした場合は、 全角では15文字しか入力できなくて 半角では30文字入力制限をする方法を探しています。 何かよい方法はないものでしょうか???

  • テキストボックスの入力制限

     VB6の画面入力でテキストボックスにフォーカスが移った際、半角カナや全角漢字、半角アルファベット大文字と云ったキーボードからの入力を制御したい(OSはWinXp/FEPはIME2002を使用)のですが、良い方法が有れば教えてください。

  • がな入力ができなくなった

    今、パソコン操作をやっていたら、とつぜんかな入力ができなくなり、何をやっても英数半角入力になってしまいました。 右下のツールボックスには、「あ般・・・」と表示されているのに、かな入力ができない状態です。 半角/全角の切り替えが無効です。 プロパティを調べましたが、特に変わったところはありませんでした。 再立ち上げをしたら直りましたが、今度そういう状態になったとき、どこを調べればよいでしょうか?

  • テキストボックスの入力値チェックについて

    テキストボックスに入力した値に対して半角カナで入力されているかのチェックをコマンドボタン押下時に行いたいのですが、 どのようなコードを書けばよろしいのでしょうか? ついでに、半角数字のみのチェックも教えてください。

  • Access2003のVBAで半角カナを全角カナにしたいです

    Access2003を使っています。過去の質問集を検索したのですが分からなかったので教えてください。 次のコードで、「ふりがな」(半角カナ)のところを「ふりがな」(全角カナ)に変更しても、勝手に「ふりがな」(半角カナ)になってしまうのですが、なんとかならないでしょうか? Private Sub Form_Current() Me!整理番号.Enabled = False Me!氏名.Enabled = False Me!ふりがな(注:半角カナになってます).Enabled = True Me!生年月日.Enabled = False End Sub 以前Access2000を使っていた時は対象のフォームにて、テキストボックスに「ふりがな」(半角カナ)と名前をつけていたので問題はなかったのですが、Access2003に移行した際に上記コードの半角カナの部分でエラーが出るようになったので、全角カナに名前を変更した為に.Enabled = Falseが機能しなくなってしまいました。ご助言をお願いします。

  • テキストボックスへの文字の入力について

    テキストボックスに入力できる文字を半角文字は最大30字、全角文字は最大15字に設定したいのですがどのようにすればできるのでしょうか?知っている方教えてください。

  • すぐに半角のかな入力になってしまい困ってます

    どういうわけか、気を抜くと半角のかな入力になってしまいます。 入力モードをどうすればいいんでしょうか。 理想としては常に全角のひらがな入力になっていて、必要に応じて半角の英数入力にしたいです。よろしくお願いいたします。

専門家に質問してみよう