[dba-VS] Using RemoveHandler in a Combobox Base Class
Dan Waters
df.waters at outlook.com
Fri Jun 5 17:19:33 CDT 2015
Good Luck Charlotte!
Lots of physical therapy ahead I'd guess - I've had good luck with that.
All the best!
Dan
-----Original Message-----
From: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] On Behalf Of
Charlotte Foust
Sent: Friday, June 05, 2015 4:53 PM
To: Development in Visual Studio
Subject: Re: [dba-VS] Using RemoveHandler in a Combobox Base Class
To be honest, I haven't worked seriously in VS.Net for the past 5 years, so
I'm rusty. I'm also having a knee replaced next week and won't be thinking
about programming for a bit. Maybe someone else will jump in and help.
Charlotte Foust
(916) 206-4336
On Fri, Jun 5, 2015 at 9:52 AM, Dan Waters <df.waters at outlook.com> wrote:
> Hi Charlotte,
>
> This is the whole story. I have a custom control named PSICombobox
> which inherits from ComboBox.
>
> Below is shown one of the several events I've written for the
> PSICombobox, which could be used hundreds of places on many different
WinForms.
>
> The issue is that when the Me.DroppedDown method is executed, the
> combobox's SelectedIndexChanged event on the form is automatically
> run, which of course can cause a problem. I want to prevent the
> combobox's SelectedIndexEvent (on the form) from being run every time
> it is dropped down from the code in this custom control's class.
>
> Typically I would do this in the form's code using RemoveHandler. But
> that requires knowing the address of the combobox, which is readily
> available by the form's code. But how would I get that address in the
> custom control's class code?
>
> Or, is there another way to do this without using RemoveHandler?
>
> Thanks!
> Dan
>
> '--------------------------------------------------
> Public Class PSICombobox
>
> Inherits ComboBox
> Protected Overrides Sub OnEnter(e As EventArgs)
>
> If Me.Enabled = False Then Exit Sub
>
> Me.BackColor = System.Drawing.Color.FromArgb(255, 255, 160)
> '--
> Pale Yellow
>
> stgComboboxTextEnter = Me.Text
>
> If Me.SelectedIndex = -1 Then
>
> RemoveHandler Me.SelectedIndexChanged, AddressOf [WHAT
> GOES HERE?]
>
> '-- For user convenience drop down the combobox when it
> gets the focus and it's empty
> Me.DroppedDown = True
>
> RemoveHandler Me.SelectedIndexChanged, AddressOf [WHAT
> GOES HERE?]
>
> End If
>
> MyBase.OnEnter(e)
>
> End Sub
> End Class
> '--------------------------------------------------
>
> -----Original Message-----
> From: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] On Behalf Of
> Charlotte Foust
> Sent: Thursday, June 04, 2015 11:55 PM
> To: Development in Visual Studio
> Subject: Re: [dba-VS] Using RemoveHandler in a Combobox Base Class
>
> What I meant was test for a condition in that SelectedIndexChanged
> event and then either cancel the event or handle it normally. Is
> there a condition you could test for in that event so you would know
> whether to allow it to continue?
>
> Charlotte Foust
> (916) 206-4336
>
> On Wed, Jun 3, 2015 at 2:00 PM, Dan Waters <df.waters at outlook.com> wrote:
>
> > Hi Charlotte,
> >
> > I will add the handler back in a few lines of code down.
> >
> > What do you mean 'branching the code'?
> >
> > Dan
> >
> > -----Original Message-----
> > From: dba-VS [mailto:dba-vs-bounces at databaseadvisors.com] On Behalf
> > Of Charlotte Foust
> > Sent: Wednesday, June 03, 2015 3:40 PM
> > To: Development in Visual Studio
> > Subject: Re: [dba-VS] Using RemoveHandler in a Combobox Base Class
> >
> > Why remove the handler rather than branching the code in it?
> >
> > Charlotte Foust
> > (916) 206-4336
> >
> > On Wed, Jun 3, 2015 at 8:09 AM, Dan Waters <df.waters at outlook.com>
> wrote:
> >
> > > I have a combobox base class (a custom control) which will cause
> > > the combobox to drop down when the control is entered and the
> > > selectedindex =
> > > -1
> > > (it's empty). This is a convenience for users.
> > >
> > >
> > >
> > > However, I recently discovered that when the combobox is dropped
> > > down, its SelectedIndexChanged event also fires, which I want to
> > > prevent. In the code behind the form, I can just use
> > >
> > >
> > >
> > > RemoveHandler cboName.SelectedIndexChanged, AddressOf
> > > cboName_SelectedIndexChanged
> > >
> > >
> > >
> > > But in the base class, I don't know how to specify what the
> > > address is for the combobox on the form.
> > >
> > >
> > >
> > > This is where I'm stuck:
> > >
> > > RemoveHandler, Me.SelectedIndexChanged, AddressOf [What is the
> > > address?]
> > >
> > >
> > >
> > > How can this be done?
> > >
> > >
> > >
> > > Thanks!
> > >
> > > Dan
> > >
> > >
> > >
> > > _______________________________________________
> > > dba-VS mailing list
> > > dba-VS at databaseadvisors.com
> > > http://databaseadvisors.com/mailman/listinfo/dba-vs
> > > http://www.databaseadvisors.com
> > >
> > _______________________________________________
> > dba-VS mailing list
> > dba-VS at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/dba-vs
> > http://www.databaseadvisors.com
> >
> > _______________________________________________
> > dba-VS mailing list
> > dba-VS at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/dba-vs
> > http://www.databaseadvisors.com
> >
> _______________________________________________
> dba-VS mailing list
> dba-VS at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/dba-vs
> http://www.databaseadvisors.com
>
> _______________________________________________
> dba-VS mailing list
> dba-VS at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/dba-vs
> http://www.databaseadvisors.com
>
_______________________________________________
dba-VS mailing list
dba-VS at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-vs
http://www.databaseadvisors.com
More information about the dba-VS
mailing list