vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: 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.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Usercontrol - Property wie "Font" oder "Size" benutzerdefini...1.888PC_Schubbser29.12.09 21:59
Re: Usercontrol - Property wie "Font" oder "Size" benutzerde...973keco30.12.09 12:24

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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