vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Fortgeschrittene
UserControl Property verstecken 
Autor: dj.tommy
Datum: 11.10.19 22:18

Hallo Leute!
Ich habe ein kleines Problem.
Ich habe ein eigenes Usercontrol geschrieben funktioniert super, nur soll MaximumSize, MinimumSize, Size, Width nicht im Designer nicht geändert werden können.

Wie stell ich es an, das das Projekt funktionstüchtig bleibt, wenn die Property gesperrt bzw. versteckt ist?
Ich habe schon folgendes ausprobiert
Variante 1
Public Class SeparatorDesigner
    Inherits ControlDesigner
 
    'Allows only horizontal/vertical resizing
    Public Overrides ReadOnly Property SelectionRules() As SelectionRules
        Get
            Return SelectionRules.LeftSizeable Or SelectionRules.RightSizeable _
              Or SelectionRules.Visible Or SelectionRules.Moveable
        End Get
    End Property
 
    Protected Overrides Sub PostFilterProperties(ByVal properties As _
      System.Collections.IDictionary)
        Dim Ausnahme() As String = { "MaximumSize", "MinimumSize", "Size", _
        "Width"}
        Dim propertyClaer As New List(Of String)
          For Each obj As String In properties.Keys
            If Not Ausnahme.Contains(obj) Then
                propertyClaer.Add(obj)
            End If
          Next
 
          For Each obj As String In propertyClaer
              properties.Remove(obj)
          Next
 
        MyBase.PostFilterProperties(properties)
    End Sub
 
End Class
Funktioniert zwar alles, was ich so mit bekommen habe, aber unter Designer, wenn man das Steuerelement verkleiner oder vergrößert, die eine vergebene Min und Maximum hat, verhaltet sich unter Design fehlerhaft. Sehe Bild.

Variante 2
    <DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)>
    <Browsable(False)>
    Public Overloads Property MaximumSize As Size
        Get
 
        End Get
        Set(MaximumSize As Size)
            'Me.MaximumSize = MaximumSize
        End Set
    End Property
    <DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)>
    <Browsable(False)>
    Public Overloads Property MinimumSize As Size
        Get
 
        End Get
        Set(MinimumSize As Size)
 
        End Set
    End Property
Ich sehe unter Eigenschafte nicht MinimumSize und MaximumSize, was auch gut ist, aber das Steuerelement ist sehr klein und lässt dich unbegrenzt verkleiner und vergrößern was wiederum schlecht ist

Die Property MaximumSize, wenn ich unter Set Me.MaximumSize = MaximumSize eintrage, hat unter dem Me.MaximumSize eine grüne welle.
Ich denke, so kann ich den Code auch nicht schreiben, damit MaximumSize funktion aufrechterhalte, da ist sicher ein Konflikt
Habt ihr ein Tipp oder eine Lösung für mein Problem?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: UserControl Property verstecken 
Autor: dj.tommy
Datum: 12.10.19 06:21

Guten Morgen!
Ich habe mein Problem gelöst.
Ich habe unter PostFilterProperties Width heraus genommen, damit es nicht entfernt wird, und diese Property geschrieben

    <BrowsableAttribute(False)>
    Public Overloads Property Width As Integer
        Get
            Return 0
        End Get
        Set(Width As Integer)
 
        End Set
    End Property
Jetzt habe ich was ich möchte, und zwar rechts unter Eigenschaften sind MaximumSize, MinimumSize, Size und Width nicht mehr auf gelistet, und das verschieben im Design ist nicht mehr fehlerhaft
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-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