vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Menüeinträge in mdi Anwendung dynamisch erzeugen (Dateiliste...1.983crossweb06.06.06 15:26
Re: Menüeinträge in mdi Anwendung dynamisch erzeugen (Dateil...1.489ModeratorDaveS06.06.06 16:03
Re: Menüeinträge in mdi Anwendung dynamisch erzeugen (Dateil...1.422ModeratorDaveS06.06.06 16:28
Re: Menüeinträge in mdi Anwendung dynamisch erzeugen (Dateil...1.492crossweb06.06.06 16:46
Re: Menüeinträge in mdi Anwendung dynamisch erzeugen (Dateil...1.340ModeratorDaveS06.06.06 17:34
Re: Menüeinträge in mdi Anwendung dynamisch erzeugen (Dateil...1.930crossweb06.06.06 17:49
Re: Menüeinträge in mdi Anwendung dynamisch erzeugen (Dateil...1.495ModeratorDaveS06.06.06 17:55

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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