?
Solved

Delegate error “Error binding to target method.”

Posted on 2011-03-02
1
Medium Priority
?
453 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
1 Comment
 
LVL 96

Accepted Solution

by:
Bob Learned earned 2000 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

NEW Veeam Agent for Microsoft Windows

Backup and recover physical and cloud-based servers and workstations, as well as endpoint devices that belong to remote users. Avoid downtime and data loss quickly and easily for Windows-based physical or public cloud-based workloads!

Question has a verified solution.

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

What do responsible coders do? They don't take detrimental shortcuts. They do take reasonable security precautions, create important automation, implement sufficient logging, fix things they break, and care about users.
Q&A with Course Creator, Mark Lassoff, on the importance of HTML5 in the career of a modern-day developer.
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 …
Screencast - Getting to Know the Pipeline

839 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