Hallo,
ich habe mal wieder ein eher größeres Problem, was eigentlich nur die Schönheit betrifft.
Ich habe einen Mouseoverbutton gemacht, der funkt auch prima, doch immer wenn ich auf den Button klicke, welcher für das Schließen des Programms verantwortlich ist, kommt ein .NET Framework Error:
System.ArgumentOutOfRangeException wurde nicht behandelt.
Message="InvalidArgument=Value mit dem Wert 0 ist für index ungültig.
Parametername: index"
ParamName="index"
Source="System.Windows.Forms"
StackTrace:
bei System.Windows.Forms.ImageList.ImageCollection.get_Item(Int32 index)
bei mtManager.mtManager.SchliessenLeave(Object sender, EventArgs e) in _
D:\VB\mtManagerX\mtManager.vb:Zeile 40.
bei System.Windows.Forms.Control.OnMouseLeave(EventArgs e)
bei System.Windows.Forms.ButtonBase.OnMouseLeave(EventArgs eventargs)
bei System.Windows.Forms.Button.OnMouseLeave(EventArgs e)
bei System.Windows.Forms.Control.WmDestroy(Message& m)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& _
m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, _
Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.IntDestroyWindow(HandleRef _
hWnd)
bei System.Windows.Forms.UnsafeNativeMethods.DestroyWindow(HandleRef _
hWnd)
bei System.Windows.Forms.NativeWindow.DestroyHandle()
bei System.Windows.Forms.Control.DestroyHandle()
bei System.Windows.Forms.Control.Dispose(Boolean disposing)
bei System.Windows.Forms.Form.Dispose(Boolean disposing)
bei mtManager.mtManager.Dispose(Boolean disposing) in _
D:\VB\mtManagerX\mtManager.designer.vb:Zeile 11.
bei System.ComponentModel.Component.Dispose()
bei System.Windows.Forms.Form.WmClose(Message& m)
bei System.Windows.Forms.Form.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& _
m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, _
Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, _
Int32 msg, Int32 wParam, Int32 lParam)
[gekürzt] Ich habe das folgendermaßén gelöst:
Private Sub bla_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
AddHandler Me.Schliessen.MouseLeave, AddressOf Me.SchliessenLeave
AddHandler Me.Schliessen.Click, AddressOf Me.SchliessenClick
AddHandler Me.Schliessen.MouseDown, AddressOf Me.SchliessenMouseDown
AddHandler Me.Schliessen.MouseEnter, AddressOf Me.SchliessenEnter
AddHandler Me.Schliessen.MouseUp, AddressOf Me.SchliessenMouseUp
End Sub
Sub SchliessenClick(ByVal sender As Object, ByVal e As EventArgs)
Schliessen.Image = Me.SchliessenList.Images.Item(1)
End Sub
Sub SchliessenEnter(ByVal sender As Object, ByVal e As EventArgs)
Schliessen.Image = Me.SchliessenList.Images.Item(2)
End Sub
Sub SchliessenLeave(ByVal sender As Object, ByVal e As EventArgs)
Schliessen.Image = Me.SchliessenList.Images.Item(0)
End Sub
Sub SchliessenMouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
Schliessen.Image = Me.SchliessenList.Images.Item(1)
End Sub
Sub SchliessenMouseUp(ByVal sender As Object, ByVal e As MouseEventArgs)
Schliessen.Image = Me.SchliessenList.Images.Item(1)
End Sub Das funktoiniert auch gut, nur wenn man auf den Button klickt, kommt halt der Fehler.
Das komische ist, dass das nicht passiert, wenn ich den Button nicht mit dem "Me.Close" Kommando belege.
Jemand eine Idee? |