- - PR -
IMEモードについて
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-03-24 10:48
テキストボックスのIMEモードを半角カナにしたいのですが、
下記のように設定しても初期値として設定するだけの為、 ユーザ操作によるIMEモードの変更が可能になってしまいます。
半角カナ入力ができ、さらにキーボードによりIMEモードを変更不可にすることはできないのでしょうか? スペースキーでの変換、F6、F7などのショートカットキーの操作ができないようにしたいです。 | ||||||||||||
|
投稿日時: 2009-03-24 11:36
ImeModeプロパティの設定はユーザの利便性のために行うもので、 入力制限のために使用するものではないですからね。
プロパティの設定等で行う方法はないと思います。 (簡単でない方法であれば、たぶんあるだろうと思いますが、私は知りません)
どうしてそのようにしたいのでしょうか? もし入力制限のためということであれば、IMEの設定により入力制限をするのではなく、 入力チェックで半角カナ以外をはじいておけばよいと思いますがどうでしょうか。 仮にIMEの設定を制限できたとしても、入力チェックは必要ですから。 #個人的にはユーザの入力方法を制限するのはユーザビリティが下がるのでお勧めしません。 | ||||||||||||
|
投稿日時: 2009-03-24 11:43
google 検索 「VB .NET キーボード 無効」
でもよねKENさんのおっしゃるように入力チェック時に制限を行う方が良いと思います。 コピーした文字を貼り付けた時などのことも考えないといけないですし キーの制御は個人的にとても嫌です。 | ||||||||||||
|
投稿日時: 2009-03-24 11:54
確かにそうですね。 簡単にプロパティで出来そうにないので入力チェック時下記のように全角存在チェックをすることにしました。 ありがとうございました。
| ||||||||||||
|
投稿日時: 2009-03-24 11:58
ようするに半角カナ以外の入力をさせたくないということですね。
TextBoxを継承したカスタムコントロールでProcessDialogKeyをオーバーライドして 制御かなぁ。 入力ができないという制御は「数値だけ」「アルファベットだけ」なら 比較的楽でしょうが、半角カナのみということなので、大変だと思います。 貼り付けなども制御しますか? "リンゴミカン"はみとめるけど"リンgミkン"はだめですよね? 入力確定時かロストフォーカス時の制御はいずれにせよ必要かと。 変更不可、変換、ショートカットキー不可よりも 入力された文字列に対して、 ・数値、アルファベット→入力不可、または削除 ・ひらがな、全角カナ→半角カナへ変換 なら制御しやすいのかなと思いましたが・・・ いい方法があるのかなぁ。私では思いつきません。 | ||||||||||||
|
投稿日時: 2009-03-24 13:23
こんなのしか思いつきませんでした。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1