Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

how to get count of items in listbox?

38 views
Skip to first unread message

Alpha

unread,
Apr 1, 2005, 7:47:02 PM4/1/05
to
Hi, How can I set all the items in a listbox to be selected? I can't find a
property or mehtod to do it so I thought I'll try using setselected method
but I need to find out how many items are in the listbox.

Thanks,
Alpha

Tim Wilson UNDERSCORE AT PERIOD

unread,
Apr 1, 2005, 7:54:49 PM4/1/05
to
Something similar to the following code should do it.

for (int x = 0; x < this.listBox1.Items.Count; x++)
{
this.listBox1.SetSelected(x, true);
}

--
Tim Wilson
.Net Compact Framework MVP

"Alpha" <Al...@discussions.microsoft.com> wrote in message
news:82558283-9EE6-45E1...@microsoft.com...

Alpha

unread,
Apr 1, 2005, 8:11:02 PM4/1/05
to
Very cool! Thank you so much again.
Have a great weekend!
Alpha

"Tim Wilson" wrote:

> Something similar to the following code should do it.
>
> for (int x = 0; x < this.listBox1.Items.Count; x++)
> {
> this.listBox1.SetSelected(x, true);
> }
>
> --
> Tim Wilson

> ..Net Compact Framework MVP

Fritz Switzer

unread,
Apr 1, 2005, 10:01:11 PM4/1/05
to
The method above is good for a small number of items in the listbox, but if
you have many. (100,000) it is either too slow or doesn't work. Is there
any other way to accomplish the same thing, but may be faster.

TIA,

Fritz


"Alpha" <Al...@discussions.microsoft.com> wrote in message

news:6F1DD8BE-4F93-4B72...@microsoft.com...

Tim Wilson UNDERSCORE AT PERIOD

unread,
Apr 1, 2005, 10:40:49 PM4/1/05
to
Try the following code.

this.listBox1.SelectionMode = SelectionMode.MultiExtended;

...

if (this.listBox1.Items.Count > 0)
{
this.listBox1.Focus();
this.listBox1.SetSelected(0, true);
SendKeys.Send("+{END}");
}

--
Tim Wilson
.Net Compact Framework MVP

"Fritz Switzer" <fritz....@abletfactory.com> wrote in message
news:%23f%2372AzN...@tk2msftngp13.phx.gbl...

Fritz Switzer

unread,
Apr 2, 2005, 11:12:19 AM4/2/05
to
Tim,

Thanks, that was about "a gazillion" times faster. :)


Fritz

"Tim Wilson" <TIM(UNDERSCORE)WILSON(AT)ROGERS(PERIOD)COM> wrote in message
news:OHFaiWzN...@TK2MSFTNGP14.phx.gbl...

PP

unread,
Apr 2, 2005, 11:23:02 AM4/2/05
to
Here is an solution, that we had implemented (sorry, it might sound stupid :-))
To the list box we added an item as follows
[ALL] <-- Represents user wants to select all item(s)
item1
item2....

Based on the selection, we did the apprpriate thing wthin the code

Thanks
PP

PP

unread,
Apr 2, 2005, 11:47:02 AM4/2/05
to
Hi Tim

I tried this code, but doesn't seem to work. It does not SELECT all item(s),
it selects only the first item.

private void Form1_Load(object sender, System.EventArgs e)
{
listBox1.Items.Add ("Item-1") ;
listBox1.Items.Add ("Item-2") ;
listBox1.Items.Add ("Item-3") ;
listBox1.Items.Add ("Item-4") ;
listBox1.Items.Add ("Item-5") ;

this.listBox1.SelectionMode = SelectionMode.MultiExtended;


if (this.listBox1.Items.Count > 0)
{
this.listBox1.Focus();
this.listBox1.SetSelected(0, true);
SendKeys.Send("+{END}");
}
}


"Tim Wilson" wrote:

> Try the following code.
>
> this.listBox1.SelectionMode = SelectionMode.MultiExtended;
>

> ....


>
> if (this.listBox1.Items.Count > 0)
> {
> this.listBox1.Focus();
> this.listBox1.SetSelected(0, true);
> SendKeys.Send("+{END}");
> }
>
> --
> Tim Wilson

> ..Net Compact Framework MVP

Tim Wilson UNDERSCORE AT PERIOD

unread,
Apr 2, 2005, 12:07:44 PM4/2/05
to
It has to do with setting focus and selections in the Load event, before the
Form is visible. To get around this, explicitly show the Form.

private void Form1_Load(object sender, System.EventArgs e)
{

// Do preparation work here.

for (int x = 0; x < 100; x++)
{
this.listBox1.Items.Add("Item" + x.ToString());
}

this.listBox1.SelectionMode = SelectionMode.MultiExtended;

this.Show();

// Do focused work here.

if (this.listBox1.Items.Count > 0)
{
this.listBox1.Focus();
this.listBox1.SetSelected(0, true);
SendKeys.Send("+{END}");
}
}

Alternatively, you could use the Activated event instead of Load. Just note
that the Activated event may fire multile times during the life span of the
Form, depending on what the user does. For example, if the Form loses focus
to another Form, the Activated event will fire again when the Form is
brought back to the foreground. So you would need to handle this by using a
flag that indicates the work you did in the Activated event at startup has
already been done and does not need to be done again.

--
Tim Wilson
.Net Compact Framework MVP

"PP" <P...@discussions.microsoft.com> wrote in message
news:5A2F0A98-2D16-4ACF...@microsoft.com...

PP

unread,
Apr 2, 2005, 2:59:05 PM4/2/05
to
Sweet. That did the trick.

"Tim Wilson" wrote:

> It has to do with setting focus and selections in the Load event, before the
> Form is visible. To get around this, explicitly show the Form.
>
> private void Form1_Load(object sender, System.EventArgs e)
> {
> // Do preparation work here.
>
> for (int x = 0; x < 100; x++)
> {
> this.listBox1.Items.Add("Item" + x.ToString());
> }
>
> this.listBox1.SelectionMode = SelectionMode.MultiExtended;
>
> this.Show();
>
> // Do focused work here.
>
> if (this.listBox1.Items.Count > 0)
> {
> this.listBox1.Focus();
> this.listBox1.SetSelected(0, true);
> SendKeys.Send("+{END}");
> }
> }
>
> Alternatively, you could use the Activated event instead of Load. Just note
> that the Activated event may fire multile times during the life span of the
> Form, depending on what the user does. For example, if the Form loses focus
> to another Form, the Activated event will fire again when the Form is
> brought back to the foreground. So you would need to handle this by using a
> flag that indicates the work you did in the Activated event at startup has
> already been done and does not need to be done again.
>
> --
> Tim Wilson

> ..Net Compact Framework MVP

0 new messages