tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル コンボボックスのドロップダウンスタイルについて
投稿日: 2007/03/01(Thu) 16:12
投稿者Jack
初めまして、最近VB2005を始めた初心者です。
今「データベースへデータを登録するフォーム(いわゆる登録フォーム)」を作成しているのですが、設置されたコンボボックスのリスト外入力を避ける為、コンボボックスからフォーカスが外れた際に、入力された値がリストに存在するかどうかをチェックし処理を振り分けておりますが、最近ドロップダウンスタイルをDropDownListに設定する事で、リスト外入力を避ける事ができる事が解りました。
ただ、こうなると登録処理を行った後の画面の初期化処理等で問題があり、一旦ソース上で編集可能なDropDown(デフォルト)に設定し、編集可能にしてからコンボボックスのテキストを初期化し、再度DropDownListに設定しなおすという処理を行う必要があるみたいです。

で、以下の初期化ルーチンを通して実行してみると
@---------------------------------------
private sub psubShokika()
me.combobox1.dropdownstyle=dropdown
me.combobox1.text=""
me.combobox1.dropdownstyle=dropdownlist
end sub
-----------------------------------------
何故か2行目の処理でテキストが初期化された直後、3行目が実行された際に再度表示されるという現象が発生してしまいます。
しぶしぶ、こんな感じで処理してみたのが以下の処理です

A---------------------------------------
private sub osubShokika()
me.combobox1.dropdownstyle=dropdown
me.combobox1.text=""
end sub

プラスComboBox1GotForcus時イベントで
me.combobox1.dropdownstyle=dropdownList
-----------------------------------------

っていうかあまりにも「無理矢理」という感じがしないでも無いのですが、ComboboxのDropDownスタイルがDropDown時のテキストの編集についてはコレが答えなのでしょうか?
もう少しスマートなというか普通のやり方ありませんか?
これなら元々のやり方(ソースでコンボボックスのリスト外入力をチェック)にする方がソースは増えますが許せます(^^。
どなたか御教授願えないでしょうか?

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。