|
| |

VB.NET - Ein- und Umsteiger| Re: Event richtig einsetzen | |  | | Autor: marlene | | Datum: 23.09.11 13:44 |
| Hallo,
ich möchte mein Problem nochmal schildern. Ich habe eine Form Klasse(Class Main) und eine Class SaveXML. In der Form Klasse gibt es eine Methode(CreateButton) die zwei String Parameter benötigt, in dieser Methode wird dann ein Button mit verschiedenen Eigenschaften erstellt(Name, Position, Aussehen usw.), die zwei String Parameter stehen für den Namen und den Text.
In der SaveXML Klasse gibt es unter anderem zwei Methoden eine NewButton, diese nimmt zwei String Parameter(wieder für name und text) und speichert die Daten in einer XML File. Die Parameter bekommt sie aus aus einem Dialog, den ich in der Main Klasse aufrufen kann(NewTask), dort wird auch die CreateButton Methode aufgerufen um mir einen Button zu erstellen. Jetzt gibt es noch die ReadXML Methode die mir alle Daten(in diesem Fall text und name für die Buttons) aus der XML File ausliest. Diese Daten möchte ich der Methode CreateButton übergeben um mir alle Buttons(die in der XML gespeichert sind) zu erstelln(Wird benötigt beim Programm Start). Und da liegt das Problem die CreateButton Methode benötigt zwei Strings, jetzt hab ich aber sehr viele.
Meine erste Lösung war ich mach eine neue Methode z.B. CreateButton2, die dann ein Array als Parameter nimmt. Dadurch habe ich dann aber zwei fast identische Methoden die ein und dasselbe machen nur andere Parameter nehmen.
Danach kam die Lösung mit dem Event, und jetzt benutze ich wie vorgeschlagen ein Delegate.
Benutze ich hier das Delegate richtig? Wenn ich jetzt die Klasse XMlSave wo anders verwenden will brauch ich für die ReadXML Methode immer ein Delegate MyDelegate.
Public Delegate Sub MyDelegate(ByVal txtButtonName As String, ByVal txtLoc As _
String)
Public Class Main
Private Sub Main_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Dim del As New MyDelegate(AddressOf CreateButton)
oSave.ReadXML(del)
End Sub
Private Sub NewTask_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles NewTask.Click
‘Dialog wird geöffnet in dem der Benutzer zwei Strings eingeben _
muss.
XMLSave.NewButton(txtButtonName, txtLoc)
CreateButton(txtButtonName, txtLoc)
End Sub
Private Sub CreateButton(ByVal txtButtonName As String, ByVal txtLoc As String)
‘Anweisungen
End Sub
End Class
Public Class XMLSave
Public Sub ReadXML(ByVal del As MyDelegate)
‘Anweisungen
del.Invoke(txtButtonName, txtLoc)
End Sub
Public Sub NewButton(ByVal ButtonName As String, ByVal Location As String)
‘speichert die Strings in einer XML File
End Sub
End Class Es ist für mich schwer solche Sachen in einem Text zu erklären. |  |
 | 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 |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats 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 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
|
|