| |

VB.NET - FortgeschritteneRe: Usercontrol - Property wie "Font" oder "Size" benutzerdefiniert | |  | Autor: keco | Datum: 30.12.09 12:24 |
| Du brauchst dafür das TypeConverterAttribute. Hier mal ein Beispiel:Imports System.ComponentModel
Public Class UserControl1
Public Sub New()
' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
pValue = New MyValue
End Sub
Private pValue As MyValue
Public Property Value() As MyValue
Get
Return pValue
End Get
Set(ByVal value As MyValue)
pValue = value
End Set
End Property
End Class
<TypeConverterAttribute(GetType(ExpandableObjectConverter))> _
Public Class MyValue
Private pMySting As String
Private pMyInteger As Integer
Public Sub New()
pMySting = "Leer"
pMyInteger = 1
End Sub
Public Property MyString() As String
Get
Return pMySting
End Get
Set(ByVal value As String)
pMySting = value
End Set
End Property
Public Property MyInteger() As Integer
Get
Return pMyInteger
End Get
Set(ByVal value As Integer)
pMyInteger = value
End Set
End Property
Public Overrides Function ToString() As String
Return "[" & Me.MyString & ": " & Me.MyInteger & "]"
End Function
End Class EDIT:
Ich habe mal einen eigenen TypeConverter dafür geschrieben, dann kannst du auch direkt den Wert verändern, wie bei Size ohne vorher auf das + zu klicken und die Werte einzeln in den Feldern ändern zu müssen. Dafür schreibst du dann statt TypeConverterAttribute(GetType(ExpandableObjectConverter)) einfach TypeConverterAttribute(GetType(MyValueTypeConverter)).Public Class MyValueTypeConverter
Inherits ExpandableObjectConverter
Public Overrides Function CanConvertFrom(ByVal context As _
System.ComponentModel.ITypeDescriptorContext, ByVal sourceType As _
System.Type) As Boolean
If sourceType Is GetType(String) Then
Return True
Else
Return MyBase.CanConvertFrom(context, sourceType)
End If
End Function
Public Overrides Function ConvertFrom(ByVal context As _
System.ComponentModel.ITypeDescriptorContext, ByVal culture As _
System.Globalization.CultureInfo, ByVal value As Object) As Object
If Regex.Match(value.ToString, "\[.*:[0-9]*\]") IsNot Nothing Then
Dim myv As New MyValue
Dim r As String
r = Regex.Match(value.ToString, "\[.*:").Value
If r.Length > 2 Then myv.MyString = r.Substring(1, r.Length - 2)
r = Regex.Match(value.ToString, ": [0-9]*\]").Value
If r.Length > 2 Then Integer.TryParse(r.Substring(1, r.Length - 2), _
myv.MyInteger)
Return myv
Else
Return MyBase.ConvertFrom(context, culture, value)
End If
End Function
End Class
Beitrag wurde zuletzt am 30.12.09 um 12:51:09 editiert. |  |
 | 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 |
  |
|
sevGraph (VB/VBA) 
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 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
|
|