コンボボックスを、起動時にハイライト表示しないようにするには?

解決


かんとく  2009-08-12 15:26:19  No: 35392  IP: 192.*.*.*

お世話になっております。

Delphi2007,XPです。

Form1にComboBox1を配置し、

procedure TForm1.FormCreate(Sender: TObject);
begin

combobox1.AddItem('aaa',self);
combobox1.AddItem('bbb',self);
combobox1.ItemIndex :=0;

end;

とすると、起動時にComboBox1の値がaaaとなったコンボボックスが表示されますが、このとき、コンボボックスが選択された状態で、ハイライト表示されています。
これを、ハイライト表示しない状態にしてコンボボックスを表示したい場合、どうしたらよいでしょうか。

よろしくお願いします。

編集 削除
初心者  2009-08-12 16:16:30  No: 35393  IP: 192.*.*.*

例えば、
 ComboBox1.TabStop := False;
では駄目かな?。

編集 削除
 2009-08-12 21:41:29  No: 35394  IP: 192.*.*.*

Form1.ActiveControlを別のコントロールに設定する。

編集 削除
にしの  2009-08-13 11:05:07  No: 35395  IP: 192.*.*.*

複数のコントロールがあって、最初のフォーカスがComboBox1でないものを選びたいのであれば、あさんのいうようにActiveControlの設定ですね。

1つしかなくて、タブでフォーカスが当たらなくてよいのであれば、初心者さんのいうようにTabStopをfalseにしておけばよいかと思います。

さらにタブでフォーカスするようにしたければ、Form1のOnActivateイベントでComboBox1.TabStop := True;
と戻しておきます。

編集 削除
かんとく  2009-08-18 21:44:03  No: 35396  IP: 192.*.*.*

ありがとうございます。

実は、書いていなかったんですが、上記のような1つのcomboboxだけでなく、Panel上に数十個のcomboboxがあります。
それで、それらすべてがハイライト表示になっているんです。

すべてのComboBox.TabStop := False;
を試してみましたが、すべてハイライト表示されてしまいます。

あと、行っている処理とすれば、位置とサイズの変更、DropDownCountの変更、Parentの変更などです。

それと、選択肢にない(AddItemしていない)値を入力したComboboxは、他はされても、それだけハイライト表示されません。

すみませんが、よろしくお願いします。

編集 削除
ttt  2009-08-18 22:05:21  No: 35397  IP: 192.*.*.*

> 位置とサイズの変更
Style=csDropDownなコンボボックスのサイズを変更すると
エディット部分の文字列が全選択状態になるというバグがあった気がするですよ。
Delphi7でIDE上で試してみたら現象が出ました。

対処法としてはSelLenthで選択を解除するか
リサイズしない、csDropDownListにするってあたりかな。

編集 削除
かんとく  2009-08-19 15:22:02  No: 35398  IP: 192.*.*.*

ありがとうございます。

すべてのComboBoxの位置を変更したあと、SelLength:=0を実行したら、ハイライト表示が消えました。

編集 削除