I am noticing that it seems to take windows a long a.s time to paint a
ComboBox control that has say, 32000 items in its dropdown. Yes, I know
that's a lot. However, I have a VB6.0 application that uses DAO to access
an Access database, and it can load up a 32000 item combobox in a fraction
of the time it takes .net 2.0. Why is this?
Also, it seems like setting the .DataSource property takes a while, but the
bulk of the wait time is when the control gets drawn on the screen.
Robbe Morris - [MVP] C# - 18 Oct 2007 20:12 GMT
I'm assuming you are using databinding which is slow.
Load the ComboBox manually...
32k items in a ComboBox is just nuts...

Signature
Robbe Morris [Microsoft MVP - Visual C#]
.NET PropertyGrid Control - ListBox, ComboBox, and Custom Classes
http://www.eggheadcafe.com/tutorials/aspnet/270e9432-d236-47e7-b1af-5cd3abe27a75
/net-propertygrid-control.aspx
>I am noticing that it seems to take windows a long a.s time to paint a
>ComboBox control that has say, 32000 items in its dropdown. Yes, I know
[quoted text clipped - 4 lines]
> Also, it seems like setting the .DataSource property takes a while, but
> the bulk of the wait time is when the control gets drawn on the screen.
Patrice - 19 Oct 2007 09:28 GMT
This is likely because it is refreshed each time you add an element. You
could use AddRange to add all items at once or try
SuspendLayout/ResumeLayout to avoid refreshing the control each time.
You may want also to check if another UI would be more efficient for the
users...
As a side note please avoid to post in too many groups...
--
Patrice
>I am noticing that it seems to take windows a long a.s time to paint a
>ComboBox control that has say, 32000 items in its dropdown. Yes, I know
[quoted text clipped - 4 lines]
> Also, it seems like setting the .DataSource property takes a while, but
> the bulk of the wait time is when the control gets drawn on the screen.
Mr. Arnold - 20 Oct 2007 14:26 GMT
>I am noticing that it seems to take windows a long a.s time to paint a
>ComboBox control that has say, 32000 items in its dropdown. Yes, I know
[quoted text clipped - 4 lines]
> Also, it seems like setting the .DataSource property takes a while, but
> the bulk of the wait time is when the control gets drawn on the screen.
Don't bind it do it manually. I'll assume you're doing it manually with
VB6. Also, if some reader is coming into play on the binding, then the
reader has to go back a read more records, instead of you loading the data
in an Arrylist and bind the Arraylist to the control. All the data is in
memory in the Arraylist, which is faster.
Bob Powell [MVP] - 28 Oct 2007 17:25 GMT
As Robbe suggests this is a ridiculous amount of items to store in a combo.
Also you may be suffering from the effect of the databinding problem I
describe in the following article...
http://www.bobpowell.net/ComboBinding.htm

Signature
--
Bob Powell [MVP]
Visual C#, System.Drawing
Ramuseco Limited .NET consulting
http://www.ramuseco.com
Find great Windows Forms articles in Windows Forms Tips and Tricks
http://www.bobpowell.net/tipstricks.htm
Answer those GDI+ questions with the GDI+ FAQ
http://www.bobpowell.net/faqmain.htm
All new articles provide code in C# and VB.NET.
Subscribe to the RSS feeds provided and never miss a new article.
>I am noticing that it seems to take windows a long a.s time to paint a
>ComboBox control that has say, 32000 items in its dropdown. Yes, I know
[quoted text clipped - 4 lines]
> Also, it seems like setting the .DataSource property takes a while, but
> the bulk of the wait time is when the control gets drawn on the screen.