|
| |

VB.NET - Ein- und Umsteiger| Event richtig einsetzen | |  | | Autor: marlene | | Datum: 21.09.11 12:08 |
| Hallo,
Ich hab mir zur Übung ein kleines Programm geschrieben. Einen Teil des Programms hab ich durch ein Event gelöst und wollte Fragen ob das eine gute Lösung ist oder nicht. Ich versuche das zu beschreiben. In der Klasse Main wird beim laden der Form,
auf die Methode ReadButtons der Klasse oSave zugegriffen und in einer Schleife jedesmal ein Event ausgelöst der mir zwei Strings an die Methode CreateButton liefert.
Ich könnte auch bei der ReadButtons Methode ein Array(das Event löschen) mit Strings zurückgeben lassen, und das an CreateButton übergeben, da ich aber auch zur Laufzeit die CreateButton Methode benötige, wo dann nur zwei Strings übergeben werden dachte ich das ist mit einem Event die bessere Lösung. Bei solchen Sachen tue ich mich noch schwer, es gibt mehrere Möglichkeiten z. B. wäre es auch möglich das ich in der ReadButtons einen Aufruf Main.CreateButton(String, String) erstelle, mit dieser Lösung ist aber die Methode der Klasse XMLSave nur brauchbar wenn es eine Klasse Main gibt, das würde die wieder verwenden der Klasse zerstören. Ich möchte dafür eine saubere Lösung finden um mich auch in Zukunft daran halten zu können.
Ich würde ja gerne die ganze Anwendung hochladen, aber das Ganze überschreitet die 5kb Grenze.
Da ich Anfänger bin, wär ich über Kritik, Verbesserungen usw. sehr erfreut.
Public Class Main
Private oSave As New XMLSave
Private Sub Main_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
'3.Event anmelden, und Sub aufrufen
AddHandler oSave.ReadButtons, AddressOf CreateButton
oSave.ReadXML()
End Sub
Private Sub CreateButton(ByVal txtButtonName As String, ByVal txtLoc As String)
Dim mButton As New Button
With mButton
.Text = txtButtonName
.Name = txtLoc
.Size = New Size(141, 28)
.Font = New Font("Microsoft Sans Serif", 10)
.BackColor = Color.AliceBlue
.Location = New Point(12, mPosition)
.FlatStyle = FlatStyle.Flat
.Parent = Me
AddHandler .Click, AddressOf ButtonClick
End With
mPosition += 32
Me.Size = New Size(175, mPosition + 32)
End Sub
End Class
Public Class XMLSave
Private doc As New XmlDocument()
Private node As XmlNode
Private element As XmlElement
Private subnode As XmlNode
'1. Neues Event
Event ReadButtons(ByVal txtButtonName As String, ByVal txtLoc As String)
Public Sub ReadXML()
Try
doc.Load("tasks.xml")
Dim txtButtonName As String = "none"
Dim txtLoc As String = "none"
For Each Me.node In doc.DocumentElement
For Each Me.subnode In node.ChildNodes
Select Case subnode.Name
Case "name"
txtButtonName = subnode.InnerText
Case "location"
txtLoc = subnode.InnerText
End Select
Next
'2. Event auslösen
RaiseEvent ReadButtons(txtButtonName, txtLoc)
Next
doc.Save("tasks.xml")
Catch ex As Exception
CreateXml()
End Try
End Sub
End Class |  |
 | 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! sevPopUp 2.0 
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 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
|
|