| |
VB.NET - FortgeschritteneOptionen für eigenes Control - gute Umsetzung gesucht | | | Autor: Snof | Datum: 29.11.07 00:36 |
| Hallo
Ich bastel grade an einem eigenen Controll für eine Anwendung.
Nun möchte ich dem Nutzer die Möglichkeit geben verschiedene Einstellungen verändern zu können (z.B. Farben oder Größen).
Ich hatte zuerst die Idee es über eine Struktur zu kapseln. Dann könnte man dem nutzer zb übers PropertyGrid die Daten ändern lassen, oder ähnliches.
Dabei bin ich jedoch auf ein Problem gestoßen: Ich kann keine Standard-Werte festlegen (oder besser, ich weiß nicht wie ) . Eine direkte Wertzuweisung bei der Deklaration geht nur mit statischen Variabel (Private Shared ...) und einen parameterloser Konstruktor geht auch nicht.
Wenn jemand eine gute Idde hat, wie ich ein paar Standardwerte definieren kann, würde ich mich sehr freuen. In jedem Fall sollten die Daten gekapselt werden.
Vielen Dank im Voraus | |
Re: Optionen für eigenes Control - gute Umsetzung gesucht | | | Autor: Snof | Datum: 30.11.07 01:43 |
| Hallo
Danke für den Tipp, aber das Atribut funktioniert nicht, zumindestens nich so wie ich möchte.
Es würde mir zwar im PropertyGrid den richtigen Wert als Standard-Wert anzeigen, allerding wird der Wert beim Anlegen einer neuen Instanz nich automatisch gesetzt.
Ich hab mal ein wenig in der MSDN gestöbert und bin auf diesen Absatz gestoßen:Zitat: | | Der Wert von nicht freigegebenen Datenmembern einer Struktur kann nicht in der Deklaration initialisiert werden. Sie müssen einen solchen Datenmember entweder mit einem parametrisierten Konstruktor auf Strukturebene initialisieren oder dem Member nach dem Erstellen einer Instanz der Struktur einen Wert zuweisen. | |
Bedeutet für mich: Entwerder Klasse, oder Konstruktor mit Parameter, oder "von Hand" die Werte setzen (was den Sinn der ganzen Sache in Frage stellt). Wollte eigentlich alles 3 nicht.
Das Atribut nutz ich trotzdem | |
Re: Optionen für eigenes Control - gute Umsetzung gesucht | | | Autor: spike24 | Datum: 30.11.07 11:52 |
| hmm....
das klingt für mich irgendwie nach XML oder Ressources
d.h. die ganzen notwendigen einstellungen in die entsprechende datei auslagern und im New der Klasse laden.
oder einfach fixe zuweisungen im New()
Public Sub New()
m_Variable = Wert
end Sub
PRivate m_Variable as Typ
Public Property Variable as Typ
....
End Property 0 | |
Re: Optionen für eigenes Control - gute Umsetzung gesucht | | | Autor: Snof | Datum: 30.11.07 18:47 |
| Es geht mir ja nich ums Laden und Speichern. Ich wollte ja meine Optionen in einer Struktur kapseln, die bei s = New MyStruc() nicht überall 0 als Startwert hat. Das geht aber leider nicht. | |
Re: Optionen für eigenes Control - gute Umsetzung gesucht | | | Autor: spike24 | Datum: 03.12.07 08:14 |
| unter New MyStruc() wird ja Code ausgeführt, da kannst Du ja reinschreiben was Du willst
Public Class MyStruc
Public Sub New()
Varible = Wert
End Sub
End Class oder habe ich da was falsch verstanden? 0 | |
Re: Optionen für eigenes Control - gute Umsetzung gesucht | | | Autor: Snof | Datum: 03.12.07 14:18 |
| Ja, leicht.
Ein Parameterloser Konstruktor (also Sub New()) muss bei Strukturen als Shared deklariert sein. Das bedeutet, ich kann inerhalb der New[/]-Methode auch nur auf Variabeln zugreifen, die ebenfalls als Shared deklariert sind. | |
Re: Optionen für eigenes Control - gute Umsetzung gesucht | | | Autor: spike24 | Datum: 04.12.07 08:29 |
| ah, struct habe ich überlesen
wäre bei MyStruct naheliegend gewesen
eventuell fällt mir nur mehr eine unsaubere lösung ein
eine Helperklasse (funktion) schreiben, der man die neu angelegte struct übergibt welche dann aus XML (o.ä.) befüllt wird (hier könnte auch das schlüsselwort ByRef helfen, weis nicht wie ein Struct bei übergabe an eine funktion im Speicher behandelt wird) 0 | |
| 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! 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 Infos
|
|
|
Copyright ©2000-2024 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
|
|