Solved

Workaround:  ListBox SelectedIndexChanging Winforms event

Posted on 2006-10-22
6
634 Views
Last Modified: 2008-01-09
In .net it doesn't appear that Bill Gates provided the SelectedIndexChanging event for the ListBox, using Winforms.
This event would allow cancelling changing the SelectedIndex, depending on a cancel parameter.
It would be ideal to have this event.  Know anyone who has built this component as freeware
or payware?  I would pay $100 for a listbox with this feature, since this is requiring workarounds.

example usage:
Protected Sub  myListBox.SelectedIndexChanging(oldSelectIndex as Integer, proposedSelectIndex as Integer, e as SomeEventWithCancel)
   ' Some processing with oldSelectIndex
   If not processingWentOK()
         e.Cancel = True            ' which causes the proposed change to not occur.
   End
End Sub
0
Comment
Question by:brotherbill999
  • 3
  • 2
6 Comments
 
LVL 13

Accepted Solution

by:
newyuppie earned 500 total points
ID: 17785514
maybe you could use a TreeView control, which has the Before_Select() event with a cancel event parameter, and it has nearly the same fucntionalities as the listbox.
0
 
LVL 10

Expert Comment

by:gangwisch
ID: 17785792
i usually just test for this error on the listbox_droppeddown  event
0
 

Author Comment

by:brotherbill999
ID: 17786144
Great, here's a sample of using the treeView.BeforeSelect to prevent the user from selecting "World"
This event is also a great place to stick code which need to run with the existing state, but know whats coming.
For me, it will be used to save data.

    Private Sub TreeView1_BeforeSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView1.BeforeSelect
        Dim tn As TreeNode = TreeView1.SelectedNode   ' This was selected node prior to this selection
        If e.Node.Text = "World" Then                            ' e.Node.Text is the proposed node by the user
            e.Cancel = True                                            ' Reject the user's change, keeping the prior node
        End If
    End Sub

BTW, on mouse down, the proposed node shows selected, but on mouse up, it reverts to the prior selected.

Ah, if only the .NET team would have added this event to the humble ListBox

Brother Bill
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:brotherbill999
ID: 17786163
A minor difference between the ListBox and TreeView is that the ListBox highlights the entire line, whereas the Treeview only highlights the node's Text.
I can live with that.
0
 

Author Comment

by:brotherbill999
ID: 17786173
To highlight the entire width of the row, set FullRowSelect property to True.
0
 
LVL 13

Expert Comment

by:newyuppie
ID: 17786445
great it worked out for you, treeview is quite powerful and probably the best move.

thanks for the grade and the tips
NY
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: jpaulino
XML Literals are a great way to handle XML files and the community doesn’t use it as much as it should.  An XML Literal is like a String (http://msdn.microsoft.com/en-us/library/system.string.aspx) Literal, only instead of starting and ending with w…
The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (http://www.ecb.europa.eu/stats/exch…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

932 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now