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

解決


かんとく  2009-08-13 00:26:19  No: 35392

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

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-13 01:16:30  No: 35393

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


  2009-08-13 06:41:29  No: 35394

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


にしの  2009-08-13 20:05:07  No: 35395

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

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

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


かんとく  2009-08-19 06:44:03  No: 35396

ありがとうございます。

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

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

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

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

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


ttt  2009-08-19 07:05:21  No: 35397

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

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


かんとく  2009-08-20 00:22:02  No: 35398

ありがとうございます。

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


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

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






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