Solved

Delegate error “Error binding to target method.”

Posted on 2011-03-02
1
440 Views
Last Modified: 2012-05-11
Hi,

I was wondering if someone is able to help. Please refer to the attached code snippet.
I have created a sub that populates a screen with panels. It is my intention that when a panel is clicked the following method is triggered “PanelClick”.

This method is located within the objSenderForm object that I pass through. I have confirmed during runtime that this can be triggered correctly by doing the following in the immediate window:

DirectCast(objSenderForm,PDM.frmLoadForm).PanelClick

PanelClick is set to only return a message box and I can confirm that this functions correctly.

The issue is that I receive the following error message “Error binding to target method.” When the following line is being executed:

Dim obj_event_delegate As [Delegate] = [Delegate].CreateDelegate(obj_event_info.EventHandlerType, DirectCast(objSenderForm, PDM.frmLoadForm), strHandler)

I am unsure how to resolve this issue.

The target is the same as the passed in object that the controls are being added and the strEvent is = to “MouseClick” and the handler is = “PanelClick” which is a public method within frmLoadForm (the passed in object).

Any help would be appreciated. I have possibly just been looking at this too long.

Regards,

Ross

Public Sub getNewPanel(ByVal xCord As Integer, ByVal yCord As Integer, _
                                ByVal height As Integer, ByVal width As Integer, _
                                ByVal strEvent As String, ByVal strHandler As String, _
                                ByVal strQuestion As String, ByVal strControl As String, _
                                ByVal strContronName As String, ByVal strSendTo As String, _
                                ByVal booEnabled As Boolean, _
                                ByVal objSenderForm As Object)

        objPanel = New Panel

        objPanel.Height = height
        objPanel.Width = width
        objPanel.Text = ""
        objPanel.BackColor = Color.Blue
        objPanel.Name = strContronName
        objPanel.Enabled = booEnabled
        objPanel.Location = New System.Drawing.Point(xCord, yCord)
        DirectCast(objSenderForm, PDM.frmLoadForm).Controls.Add(objPanel)


        If strHandler <> "" Then
            Dim obj_type = objPanel.GetType

            Dim obj_event_info = obj_type.GetEvent(strEvent, Reflection.BindingFlags.Instance Or Reflection.BindingFlags.Public)
            Dim obj_event_delegate As [Delegate] = [Delegate].CreateDelegate(obj_event_info.EventHandlerType, DirectCast(objSenderForm, PDM.frmLoadForm), strHandler)
            'objSenderForm
            'DirectCast(Me.objSenderForm,PDM.frmLoadForm)

            obj_event_info.AddEventHandler(objPanel, obj_event_delegate)
            obj_event_delegate = Nothing
        End If


    End Sub

Open in new window

0
Comment
Question by:ross13
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 
LVL 96

Accepted Solution

by:
Bob Learned earned 500 total points
ID: 35028644
1) What does "strHandler" do for you, that you need to check for an empty string?

2) Usually, when adding an event handler, I would do something like this:

Dim panel As New Panel()
Dim textBox As New TextBox()

panel.Controls.Add(textBox)

Me.Controls.Add(panel)

AddHandler panel.Click, AddressOf PanelClickHandler

...

Private Sub PanelClickHandler(ByVal sender As Object, ByVal e As EventArgs)
End Sub

Open in new window

0

Featured Post

Creating Instructional Tutorials  

For Any Use & On Any Platform

Contextual Guidance at the moment of need helps your employees/users adopt software o& achieve even the most complex tasks instantly. Boost knowledge retention, software adoption & employee engagement with easy solution.

Question has a verified solution.

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

If you’re thinking to yourself “That description sounds a lot like two people doing the work that one could accomplish,” you’re not alone.
Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, it’s also …
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

688 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