tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルコンボボックスのドロップダウンスタイルについて
記事No5027
投稿日: 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時のテキストの編集についてはコレが答えなのでしょうか?
もう少しスマートなというか普通のやり方ありませんか?
これなら元々のやり方(ソースでコンボボックスのリスト外入力をチェック)にする方がソースは増えますが許せます(^^。
どなたか御教授願えないでしょうか?

[ツリー表示へ]
タイトルRe: コンボボックスのドロップダウンスタイルについて
記事No5035
投稿日: 2007/03/02(Fri) 12:08
投稿者y4yama
>最近ドロップダウンスタイルをDropDownListに設定する事で、リスト外入力を避ける事ができる事が解りました。
> ただ、こうなると登録処理を行った後の画面の初期化処理等で問題があり・・

Jackさん、こんちは。私も勉強中のものです。
説明が、読み取りにくいので、はずしてるかもですが、
Comboboxは単純なStringをある数だけ並べるだけ(DB無関係)で、「登録処理を行った後」に
その1つの入力された値を、Comboboxに行追加する・・ことが、したいのでしょうか?

>リスト外入力を避ける事ができる事が解りました
から推測して、新規はTextBox1で入力されるとし、

.dropdownstyle=dropdownListのまま変更しない。
Private Sub Form1_Load()で
        ComboBox1.Items.Add("ww")
        ComboBox1.Items.Add("q2")
Private Sub Button1_Click()で
   ComboBox1.Items.Add("124")  'その1つの入力された値(TextBox1
という簡単なコードで、何も問題はないですが・・・

新規はTextBox1で入力・・というのがあやまりなら、Jackさんの追加説明が必要でしょう・・

[ツリー表示へ]
タイトルRe^2: コンボボックスのドロップダウンスタイルについて
記事No5052
投稿日: 2007/03/05(Mon) 10:54
投稿者Jack
初めまして
ありがたい解説ありがとうございます
少しコンボボックスの使い方を勉強したいと思います。
参考になるソースをじっくりながめて勉強したいと思います。
コンボボックスに限らず他各種コントロールの使い方も
不慣れなところがありますので
またよろしくお願いいたします。

[ツリー表示へ]