Hallo,
lass Starcraft mal im Schrank...
Ich bin nicht perfekt, aber versuchs mal an deinem Beispiel zu erklären.
Es geht nicht um deinen Zweck für den du deine Klasse verwenden willst sondern die Art und Weise...
Eine Klasse ist ein Oberbegriff für einen allgemeinen Objekttyp (wie eine Art Maske). Dieser Objekttyp hat verschiedene Eigenschaften (Propertys) und Funktionen oder Prozeduren.
Bei der Instanzierung geht es darum Objekte ebendieses Objekttyps zu erzeugen, die sich in ihren Eigenschaften unterscheiden (wie z.B. Farbe, Größe,...), bei denen die Funktionen und Prozeduren aber das gleiche ausführen.
Nun zu deinem Beispiel:
Lass nie eine Klasse auf Controls einer Form-Klasse direkt zugreifen wie hier:
Public Sub meinesubrutine()
If wert = true Then
Form1.Button1.Backcolor = Color.red '<- Deine Klasse ändert die Controls
' der Form-Klasse
end if
end Sub Das gibt nur Kaos (glaub mir, ich habs versucht und wurde auch einsichtig).
Die Daten sollten gekapselt werden (Datenkapselung und das Prinzip der Objektorientierte
Programmierung solltest Du lernen zu beachten).
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Dim instanz As New meineklasse()
' Der Rückgabewert der Funktion (ein Button) wird dem Button1 der Form
' zugewiesen
Me.Button1 = instanz.MachMeinenButtonFarbig(Me.Button1, Color.Blue)
End Sub
End Class Class meineklasse
' Nimm statt dessen eine Funktion, die einen Wert zurückgibt -> hier ein
' Button. Du übergibst einen Button und eine Farbe, die Funktion deiner
' Klasse färbt ihn und weist den Text zu. Als Rückgabewert gibt die
' Funktion einen Button aus, der die gewünschte Farbe hat.
Function MachMeinenButtonFarbig(ByVal btncontrol As Button, ByVal clrFarbe _
As Color) As Button
'zuweisen der Eigenschaften
btncontrol.BackColor = clrFarbe
btncontrol.Text = clrFarbe.Name
'zurückgeben des Elements "Button"
Return btncontrol
End Function
End Class So greift jede Klasse nur auf seine eigenen Elemente und Eigenschaften zu
Nimm eine Prozedur (Sub) in einer Klasse eher um interne Berechnungen/Vorgänge
auszuführen...
Du kannst diese Klasse dem Projekt hinzufügen, und aus jeder anderen Form-Klasse sauber verwenden wenn Du ihn öfter brauchst.
Ergo, nimm eine Klasse auch nur dann, wenn du sie wirklich brauchst.
Wenn nur der Form1.Button1 rot gefärbt werden soll, ist es sinnlos, dafür eine eigene Klasse zu machen.
Wenn Du anfängst umfangreichere Klassen zu schreiben, kannst du sie als einzelne Dlls binden.
So ersparst Du z.B. Zeit beim ändern der Projekte oder fügst schnell Funktionen zum Projekt hinzu unter Beibehaltung der Übersichtlichkeit.
Evtl. hilft es Dir weiter...
Ist eigentlich aber nichts weiter als eine Zusammenfassung von Beiträgen die schon kamen.
Es dauert halt bis man sich an Ausdrücke wie UI-Element usw. gewöhnt hat und sie versteht.
Lass dich nicht entmutigen!
Gruß,
Chris |