C# Listbox programming

Kenshin911

Member
Mar 13, 2007
37
0
0
I have a listbox in a form. When the application is run, the user can press a button that adds items to the listbox like this:

private void UpdateRuleList()
{
this.listRules.Items.Clear();
ScriptAction scr;
int i = scripts.scripts.Count;
for (int j = 0; j < i; j++)
{
scr = (ScriptAction)scripts.scripts[j];
this.listRules.Items.Add(scr.RuleName);
}
}

Then I attached the following code to the listbox:
private void listRules_SelectedIndexChanged(object sender, EventArgs e)
{
if (listRules.SelectedIndex != -1)
LoadScript(listRules.Items[listRules.SelectedIndex].ToString());
}

When the program is run, if I click on an item in the listbox, then Loadscript is called, but the highlighting on the item I clicked on in the listbox disapears. If I comment out the call to Loadscript, then the highlighting stays, but I need to call it so that it can update the values of other controls in the window.

I tried calling listRules.Focus(); after the LoadScript, because I thought the control lost focus for some reason, but that didn't change anything. How can I get the highlighting to stay?
 

dandragonrage

Senior member
Jun 6, 2004
385
0
0
Save the selected item (by whatever is a unique ID for it in your app) in the actual Loadscript function, and restore it at the end of the function.
 

Kenshin911

Member
Mar 13, 2007
37
0
0
Thanks dandragonrage.

I changed the function to:
private void listRules_SelectedIndexChanged(object sender, EventArgs e)
{
int i = listRules.SelectedIndex;
if (listRules.SelectedIndex != -1)
LoadScript(listRules.Items[listRules.SelectedIndex].ToString());
listRules.SelectedIndex = i;
}

and now it works. But I'm confused as to why I have to do this since LoadScript does not affect the listRules listbox in any way. It only modifies other controls in the form.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
You don't show us the LoadScript function, so we can't see what it does. You do show an UpdateRuleList function, and that clears the items collection. Post the contents of LoadScript and perhaps we can see what's going on. Does it call UpdateRuleList?
 

Kenshin911

Member
Mar 13, 2007
37
0
0
I didn't post it because it's way too long (over 1000 lines of code). It doesn't directly call UpdateRuleList, it only deals with other controls in the form.

Don't worry about it though, I figured it out. It turns out that when LoadScript is called and it changes one of the other controls, that control had an event that was called which called UpdateRuleList.

What I ended up doing was create a global variable which keeps track of if LoadScript is running and then in every control's events I check the variable to see if the LoadScript was running. If it was, then I didn't execute the event.

Works great. :thumbsup:
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |