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

フォームのコンボボックスに半角英数字以外の入力を禁止したいのです。
ですが、「Ctlr+V」もしくは右クリックの「貼り付け」を行うと全角文字も貼り付け可能です。
コンボボックスのプロパティは以下のようにしています。
Styleプロパティ「0-ドロップダウンコンボ」
IMEModeプロパティ「3-オフ固定」

どなたかご教授お願いします。

A 回答 (3件)

.NET? or VB?


CHANGEだけでは実現困難です。

例えば、範囲選択されているとき貼り付けを実行されたら、その前の状態を覚えておかなければなりません。
キーボードだけからくるとも限らないので、ウィンドウズイベントのWM_PASTEを認識して、クリップボードの値を判定する必要があります。
    • good
    • 0
この回答へのお礼

返事が遅くなり申し訳ありませんでした。
クリップボードの値を判定するというのは、私にとっては時間的にも技術的にも難しいような気がします。
ですので、仕様を変更しまして、入力は可能にしようと思います。
GotFocusイベントで指定以外の文字が入力されたか判定を行い、想定以外の場合はメッセージを表示します。

Wendy02様、tak2003様もお手数をお掛けしてしまいましたが、ありがとうございました。

お礼日時:2005/07/22 11:31

こんばんは。


一応、VB6でやってみました。他にもやり方はあるのかもしれません。これは、一旦は、Combo1 に入ってはいますが、すぐに撥ね付けられています。

Private Sub Combo1_Change()
 If LenB(StrConv(Combo1.Text, vbFromUnicode)) <> Len(Combo1.Text) Then
  Combo1.Text = vbNullChar
  Beep
End If
End Sub
    • good
    • 0

focus持った時に全角だったらNullとするロジックを書いておけば良いのでは?

    • good
    • 0

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