Fehler: error BC30506: Handles clause requires....

Blaggi

Grünschnabel
:<

Ich versuche gerade, ein Prgramm mit Menüleiste zu erstellen....
aber dann kommt es...
HANDLERS

error BC30506: Handles clause requires a WithEvents variable.

Ich gebe einfach mal den kompletten Quelltext..

Code:
Imports System
Imports System.Drawing
Imports System.Windows.Forms

Namespace DefaultNamespace
	
	Public Class Form1
		Inherits System.Windows.Forms.Form
		Private mainMenu1 As System.Windows.Forms.MainMenu
		Private menuItem2 As System.Windows.Forms.MenuItem
		Private menuItem1 As System.Windows.Forms.MenuItem
		
		Public Sub New()
			MyBase.New
		End Sub
		
		Private Sub InitializeComponent()
			Me.menuItem1 = New System.Windows.Forms.MenuItem
			Me.menuItem2 = New System.Windows.Forms.MenuItem
			Me.mainMenu1 = New System.Windows.Forms.MainMenu
			'
			'menuItem1
			'
			Me.menuItem1.Index = 0
			Me.menuItem1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.menuItem2})
			Me.menuItem1.Text = "Menu 1"
			'
			'menuItem2
			'
			Me.menuItem2.Index = 0
			Me.menuItem2.Text = "SubMenu 1"
			'
			'mainMenu1
			'
			Me.mainMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.menuItem1})
			'
			'Form1
			'
			Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
			Me.ClientSize = New System.Drawing.Size(292, 54)
			Me.Menu = Me.mainMenu1
			Me.Name = "Form1"
			Me.Text = "Form1"
		End Sub
		
		Private Sub MenuItem1Click(sender As System.Object, e As System.EventArgs) Handles MenuItem1.Click
			MessageBox.Show("O_o", "o_O", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1)
		End Sub
		
	End Class
End Namespace

Ich arbeite übrigens mit SharpDevelop, da ich mir kein 50.000$ Programm zulegen will o_O

Ich habe schon Dutzend mal versucht, einen Handler zu erstellen..
AddHandler menuItem1.Click AdressOf menuItem1Click

Aber nie funktioniert es.

Was müsste ich am Code ändern, damit mein Programm läuft?
Ich weiss, dass der Handler dort erstellt werden muss, wo auch im Quelltext das Element dazu erstellt wurde.
 
Hallo Grünschnabel,
ich hätte auch gern eine Antwort darauf. Habe das selbe Problem.
Und richtig fündig wird man bei google leider auch nicht.
 
Probier mal vor die Items die einen Handler erhalten sollen ein withevents einzufügen, das Handles in der sub zu entfernen und ein Addhandler auf das item zu machen in etwa so.

Code:
Imports System
 
Imports System.Drawing
 
Imports System.Windows.Forms
 
Namespace DefaultNamespace
 
PublicClass Form1
 
Inherits System.Windows.Forms.Form
 
Private WithEvents mainMenu1 As System.Windows.Forms.MainMenu
 
Private menuItem2 As System.Windows.Forms.MenuItem
 
Private menuItem1 As System.Windows.Forms.MenuItem
 
PublicSubNew()
 
MyBase.New()
 
EndSub
 
PrivateSub InitializeComponent()
 
Me.menuItem1 = New System.Windows.Forms.MenuItem
 
Me.menuItem2 = New System.Windows.Forms.MenuItem
 
Me.mainMenu1 = New System.Windows.Forms.MainMenu
 
'
 
'menuItem1
 
'
 
Me.menuItem1.Index = 0
 
Me.menuItem1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.menuItem2})
 
Me.menuItem1.OwnerDraw = True
 
Me.menuItem1.Text = "Menu 1"
 
AddHandler menuItem1.Click, AddressOf MItem1Click
 
'
 
'menuItem2
 
'
 
Me.menuItem2.Index = 0
 
Me.menuItem2.Text = "SubMenu 1"
 
'
 
'mainMenu1
 
'
 
Me.mainMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.menuItem1})
 
'
 
'Form1
 
'
 
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
 
Me.ClientSize = New System.Drawing.Size(292, 54)
 
Me.Menu = Me.mainMenu1
 
Me.Name = "Form1"
 
Me.Text = "Form1"
 
EndSub
 
PrivateSub MItem1Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
 
MessageBox.Show("O_o", "o_O", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1)
 
EndSub
 
EndClass
 
EndNamespace

Keine Garantie daß es geht aber so ähnlich habe ich es mit meinen Checkboxen damals auch gemacht.

Grüße
Speedy
 
Zurück