[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 4371
  • Last Modified:

Selecting last item in list in listbox control automatically - C# 2005

Hello,

Does anyone know how to select the last item in a ListBox control on a windows form in using C#??

I have a form with a listbox bound to a SQL table. The listbox displays data from one of thr columns in the table. The user is able to add new records and the new record column shows up in the list box. The new record shows up as the column data at the bottom of the list box.

1. Is there a way to have the new record's data show at the top of the list box?
2. Is there a way to have the largest value in the list box maintain the cursor's focus?

Thanks!
0
Saxitalis
Asked:
Saxitalis
  • 3
  • 2
  • 2
  • +1
2 Solutions
 
Wayne Taylor (webtubbs)Commented:
Hi Saxitalis,

See the below code snippet.

Regards,

Wayne
      //to select the last item in the listbox
     ListBox1.SelectedIndex = ListBox1.Items.Count - 1; 
 
 
      //to select the highest value in the listbox
      //select the first item to begin with
     for (int i = 0; i <= ListBox1.Items.Count - 1; i++) {
         if (ListBox1.Items(i) > ListBox1.SelectedItem) {
             ListBox1.SelectedIndex = i;
         }
      }

Open in new window

0
 
Smallfish2004Commented:
I would add: if you want the new item to be first you can use the Insert method instead of Add
0
 
SameerJagdaleCommented:
listbox1.Items.Insert(0, <<object>>);
0
Free Backup Tool for VMware and Hyper-V

Restore full virtual machine or individual guest files from 19 common file systems directly from the backup file. Schedule VM backups with PowerShell scripts. Set desired time, lean back and let the script to notify you via email upon completion.  

 
SaxitalisAuthor Commented:
Hmm - sorry if I wasn't clear...

My list box gets it's data from a SQL table. New records are addded with an Insert statement in a stored procedure. The sproc is called from my C# managed code. When I click on  the button to run the SQL SERVER Sproc, a new record gets inserted into the table and a new value shows in the listbox.

 The problem is: The newest item added to  list box (from the SQL table update) gets shown at the bottom of the Listbox's list. Then you have to scroll down through the entire ListBox list to see it. (note. the inserted number will allways be the largest in list)

Being able to have the newest item in the list highlighted (same as if you manually clicked on it) would solve my problem.

Is there a way to highlight the newest (will always be the largest) item in the ListBox list from my code??? So that the item in the list will be highlited on the windows form??

Thanks!

0
 
Wayne Taylor (webtubbs)Commented:
Have you tried either of my suggestions? The first one selects the last item in the listbox, and the second one selects the highest.
0
 
SaxitalisAuthor Commented:

 Wayne - Sorry for not listening :)

 I am unsure how to use this code. I guess that I would need to somehow find the index of the last item using your code example " ListBox1.SelectedIndex = ListBox1.Items.Count - 1; " and then relate that index to the acual value in the array? Then set that acual item value to the listbox text porperty??

Is this the right idea?

Thanks!



Could you
0
 
SaxitalisAuthor Commented:

 I actually just solved my problem by sorting the underlying SQL view differently.  

Thanks again for helping me think it through!!

John
0
 
SameerJagdaleCommented:
int newindex = this.listbox1.items.count -1;
this.listbox1.SetSelected(<<newindex>>, true);

this might help you.
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 2
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now