|
| |

VB.NET - Fortgeschrittene| Menüeinträge in mdi Anwendung dynamisch erzeugen (Dateiliste) | |  | | Autor: crossweb | | Datum: 06.06.06 15:26 |
| Hallo zusammen,
ich habe folgendes Problem (VS 2003):
Ich habe eine MDI Anwendung, welche soweit auch inklusive Menüs im Parent sowie in den Childfenstern gut funktioniert hat.
Jetzt habe ich versucht eine dynamische Liste der zuletzt geöffneten Dateien am Ende des ersten Menüeintrages („MNDatei“) hinzuzufügen.
Dabei verwende ich eine Klasse zum Kürzen der angezeigten Pfade. Da das normale MenuItem Objekt leider keinen „Tag„ Property hat, habe ich aus der Literatur den Vorschlag aufgegriffen eine abgeleitete Klasse „FileMenuItem“ zu erstellen, welche zusätzlich noch einen Property Eintrag für den kompletten Pfad und gleich auch noch ein „Tag“ mitbekommen hat.
Hier einmal den Code der Klasse:
Public Class FileMenuItem
Inherits MenuItem
' Der vollständige Pfad
Public ReadOnly Path As String
' Zusätzliche Referenz zur freien Verfügung
Public Tag As Object
Public Sub New(ByVal path As String, ByVal ctrl As Control, _
ByVal width As Integer, ByVal tag As Object, _
ByVal handler As System.EventHandler)
' die zusätzlichen Parameter werden für die Pfakürzungroutine benötigt....
Dim short as string = ' --> Aufruf der Pfadkürzungsroutine
' Delegation an Konstruktor der Basisklasse
MyBase.New(short, handler)
' Zusätzliche Member-Variablen setzen
Me.Path = path
Me.Tag = tag
End Sub Die neuen Menu Einträge erstelle ich nun mit folgender Prozedur:
....
MNDatei.MenuItems.Add(New FileMenuItem(CStr(ConfigData.LastOpen(i)), Me, 150, _
Nothing, AddressOf MenuClick))
.... Das ganze klapp auch wunderbar, solange ich kein MDI Child geladen habe. Sowie nun ein MDI Child geladen wird kommt es zu folgender Fehlermeldung:
Eine nicht behandelte Ausnahme des Typs 'System.MissingMethodException' ist in mscorlib.dll aufgetreten.
Zusätzliche Informationen: Für dieses Objekt wurde kein parameterloser Konstruktor definiert.
Sowie ich den Fehler mir einem Try Block abfange, verschwindet das Menu komplett, sowie ein MDI Child geladen ist. Schließe ich nun das Child Fenster, bekomme ich mein Menu so wie ich es gerne hätte. Versuche ich nun aber ein neues Child Fenster zu öffnen bekomme ich wieder eine exeption und kann keine weiteren Fenster öffnen.
Habt Ihr evtl. eine Idee, wo das Problem liegen könnte?
Cu
THOMAS |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
| |
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|