ComboBoxの入力文字数制限とIMEmodeの設定方法

解決


TempName  2005-10-20 19:57:40  No: 126548

始めまして
Datacombo,またComboBoxで手入力する場合の入力文字数を制限する方法と、
それぞれ手入力する場合、デフォルトで全角ひらがなに設定する方法は
ありますでしょうか?VB6.0使用です。
よろしくお願いします。


あこ  2005-10-20 20:01:07  No: 126549

プロパティをじっくりご覧ください。


特攻隊長まるるう  2005-10-20 20:28:19  No: 126550

他人(マイクロソフトとか)の作ったコントロールを使う時点で
それがどんなコントロールか?理解するのは実は(ヘルプを読めば
分かるので)最低限の事であって、全てのプロパティ・メソッドの
説明を読むのもプログラムするなら最初に普通にすべき事なんです。
詳細まで理解する必要はありません。プロパティを順に選んでその
ヘルプに飛び、1行目の説明を読むだけです。もっと簡単に知るには
[F2]キーを押し、オブジェクトブラウザを利用します。対象のクラスを
検索すればそのメンバが一覧表示されます。上から順に選択すれば、
ウィンドウ下部に説明が表示されます。

初心者でも簡単にできる操作の上、時間は30秒程度。これだけで
分かる事を他人に調べさせるのはやめましょう。


TempName  2005-10-20 20:54:00  No: 126551

わたくしの質問の仕方が悪うございました。

Datacombo1.IMEMode = 1
Datacombo1.MaxLength = 10
Combo1.MaxLength =10
と入力しても

「コンパイル エラー:
 メソッドまたはデータメンバが見つかりません。」

と表示されます。
どの様にして対応すればよろしいでしょうか?


あこ  2005-10-20 21:05:56  No: 126552

IMEModeに関してはプロパティの設定で一発ですよ。

MaxLengthに関しては入力文字数をチェックして11文字目からは入力を受け付けないようにすればいいのではないでしょうか?

あとはご自身の努力と工夫次第です。


K.J.K.  2005-10-20 21:11:39  No: 126553

標準コントロール以外だと、IMEModeプロパティを備えていない
ものがほとんどだった気がします。
ですから、IMEModeに拘るのであれば、標準のComboBoxを用いれば
いいかと。


TempName  2005-10-21 01:27:36  No: 126554

あこ様  レスありがとうございます。
>IMEModeに関してはプロパティの設定で一発ですよ。
上記致しました通り  Datacombo1.IMEMode = 1  ではエラーが
出てしまい設定できないのですが...

>MaxLengthに関しては入力文字数をチェックして11文字目からは入力を
>受け付けないようにすればいいのではないでしょうか?
それはプロパティの設定ではなくプログラミングでという事でしょうか?
そもそもわたくしの質問が、その入力文字数を制限する方法を伺って
いたのですが...
>あとはご自身の努力と工夫次第です。
まぁ人に頼らず手前でやれという事でしょうか(ヒントさえ頂けなければ、この掲示板の意味は?)

K.J.K.様  レスありがとうございます。
>IMEModeに拘るのであれば、標準のComboBoxを用いればいいかと。
確かにIMEModeだけ考えればそうなのですが、DataComboは制作中システムに
おいて必要不可欠ですので、DatacomboでのIMEModeの設定を教えて
頂きたく思います。

特攻隊長まるるう
ゴシテキノトオリシラベサセテイタダキマシタ。
DatacomboトComboBoxノニュウリョクスウセイゲンハSelLengthデオコナエル
トイウコトデヨカッタデショウカ?

じゃ、DatacomboのIMEModeの設定は?

>初心者でも簡単にできる操作の上、時間は30秒程度。これだけで
>分かる事を他人に調べさせるのはやめましょう。
>初心者でも簡単にできる操作の上、時間は30秒程度。これだけで
>分かる事を他人に調べさせるのはやめましょう。

以上どうぞよろしくお願い致します


ガッ  2005-10-21 01:40:16  No: 126555

さぁ香ばしくなってきましたっ!!>(; ´Д`)

> 以上どうぞよろしくお願い致します
とりあえず IMEモード vb でググってみてください。
とりあえず 入力制限ではなく、入力された文字列に対する制限を考えてみてください。


TempName  2005-10-21 02:02:33  No: 126556

特攻隊長まるるうさんはじめ皆さん失礼しました。
せっかくアドバイスを頂いたのに、すみませんでした。
反省しています。すみません。。


ぺろ  2005-10-21 02:27:22  No: 126557

プロパティでの設定は分かりませんが
Comboboxの文字制限のほうだけ
SendMessage() APIでCB_LIMITTEXTを送れば良いみたいです。
#ググって一番上とか

応用で
Comboboxの子ウィンドウのEdit(入力部ね)に対してEM_SETLIMITTEXT
を送る方法ならDatacombo、Combobox共通で使えるの処理が組み込める
かも知れません。(未確認ですが)


あこ  2005-10-21 02:33:15  No: 126558

>そもそもわたくしの質問が、その入力文字数を制限する方法を伺って
いたのですが...
努力と工夫でそれを考えてください。
教えてもらうだけでは何も成長しませんよ。

まずは自分で調べる努力をしましょう。
IMEモードや文字数制限の話なんて、今までに何度も語られてきた内容ですから。

次に調べた結果から自分の必要とする処理を工夫して作ればいいのです。
その段階で分からない事があったら、またググってみる。

あとはそれの繰り返し。

TempNameさんのやりたい事なら調べればいくらでも出てきますよ。
冷たいようですが、自分で調べるほうが掲示板で聞くより遥かに早い場合があります。
そして自分で調べたほうが遥かに実力が身に付きます。

数々の方からヒントやアドバイスを頂いているので、あとはTempNameさん次第です。
頑張ってください。


通ってみた  2005-10-21 05:50:23  No: 126559

ヘルプで調べてもサイトで調べても掲示板で聞いても、出てくる内容は同じです
あとは理解力、理解しようとする気持ち、気力
数分でわからなくて「ムリ」と思うなら、永遠に「ムリ」ですから


添ってみた  2005-10-21 06:58:19  No: 126560

>あとは理解力、理解しようとする気持ち、気力

調べて、考えて、コード書いて、試し、エラーが出て、
考えて、直して、試し、再度エラーが出て・・・。
をやろうとする気持ち、気力

初心者とそうでない人の一番の違いは、それが出来るか出来ないか?
だと思うな。


TempName  2005-10-21 17:54:08  No: 126561

ぺろさん、あこさん、通ってみたさん、添ってみたさん、皆さん
アドバイスありがとうございました。
本当に自分の幼さに恥ずかしいばかりです。
それに比べ皆さん大人の対応には頭の下がる思いです。
皆さんの仰る通り、今の自分には自力での努力が必要であると思います。
皆さんの後に続けるように、ひた向きに頑張って行きたいと思います。
ご迷惑お掛け致しました皆さんすみませんでした。
ここでの質問は最小限にとどめ、
なるべく自分の力で問題解決して行きたいと思います。
失礼致しました。また、ありがとうございました。


もげ  2005-10-21 18:43:56  No: 126562

ComboBoxにはMaxLengthプロパティが無く、
DataComboにはIMEModeプロパティとMaxLengthプロパティがありません。
無いなら自分で実装する必要があります。

(1)MaxLengthプロパティの代替案
Changeイベントで入力文字列を検査して、NGなら元に戻す

(2)DataComboのIMEModeプロパティの代替案
Imm*系のAPIを大量投入する必要があるので、難易度が高いです。
私ならむしろ、(3)の方法を選択します。

(3)DataComboの代替案
通常のComboBoxを使用し、
リスト値はRecordsetから自力でAddItemする。

基本的にComboBox,DataComboは少量のリストから選択させるのが本来のあり方で、
直接入力に向きません。
プロパティが省略されているのはそういう意図もあるのでしょう。
その辺もよく考えて入力インタフェイスを再考・工夫されることも、
検討の余地アリではと思います。

では、健闘を祈ります。


TempName  2005-10-21 18:55:52  No: 126563

もげさん、よき助言ありがとうございます。
参考にさせて頂きます。
なかなか奥の深い世界で、まだまだ勉強する事が山積みです。
一つずつ着実に進めて行きたいと思います。
ありがとうございました。


名無し  2005-10-21 20:18:46  No: 126564

テキストボックスで入力させて、ボタンを押したらコンボボックスに追加するようにする、とかじゃダメなのかしら?
それならテキストボックスを操作すればいいから簡単だと思うけど。


TempName  2005-10-21 20:31:00  No: 126565

名無しさんありがとうございます。
今回はAccessを使いDBやADOの勉強をかねてのプログラミングの為、
DataComboを使わなければいけない事になっています。
ただその様なやり方もあるという事は今後の良い参考になりました。
ありがとうございます。
みんなでアイデアを出し合い、新しいものをつくったり問題解決を
していく。こうした建設的で前向きな社会の大切さを、
そんなことが到底言える立場ではない私が感じています。
皆さんどうもありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加