SelectionRules, Grabber werden nicht mehr angezeigt

01/02/2010 - 09:59 von Karsten Sosna | Report spam
Hallo NG,
ich habe folgende Klasse:
\\\
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms

Namespace Controls

<DesignerAttribute(GetType(TestControl.TestControlDesigner))> _
Public Class TestControl : Inherits Control

Public Shadows Property Size() As Size
Get
Return MyBase.Size
End Get
Set(ByVal value As Size)
If MyBase.Size <> value Then
MyBase.Size = New Size(value.Width, 17)
Me.Invalidate()
End If
End Set
End Property

#Region " TestControlDesigner "

<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand,
Name:="FullTrust")> _
Friend Class TestControlDesigner

Inherits System.Windows.Forms.Design.ControlDesigner

Public Overrides ReadOnly Property SelectionRules() As
System.Windows.Forms.Design.SelectionRules
Get
Return Windows.Forms.Design.SelectionRules.Visible Or
Windows.Forms.Design.SelectionRules.LeftSizeable Or
Windows.Forms.Design.SelectionRules.RightSizeable Or
Windows.Forms.Design.SelectionRules.Moveable
End Get
End Property

End Class
#End Region

End Class

End Namespace
///

Nun ist es so, das die Grabber nicht mehr angezeigt werden, wenn ich die
Size-Eigenschaft überschatte. Kommentiere ich die Eigenschaft aus werden die
Grabber wieder angezeigt. Das muss irgendwie mit dem Designer
zusammenhàngen, denn lasse ich das DesignerAttribute weg kann ich die
Eigenschaft ruhig überschatten, die Grabber werden dann trotzdem angezeigt.
Ach ja die Funktionalitàt bleibt erhalten, dass heißt ich kann das Control
nur in der Breite àndern oder verschieben. Es werden also lediglich nur die
Grabber nicht mehr angezeigt.

Danke für jeden Tipp.
Gruß Scotty
 

Lesen sie die antworten

#1 Karsten Sosna
02/02/2010 - 10:32 | Warnen spam
Nun ist es so, das die Grabber nicht mehr angezeigt werden, wenn ich die
Size-Eigenschaft überschatte. Kommentiere ich die Eigenschaft aus werden
die Grabber wieder angezeigt. Das muss irgendwie mit dem Designer
zusammenhàngen, denn lasse ich das DesignerAttribute weg kann ich die
Eigenschaft ruhig überschatten, die Grabber werden dann trotzdem
angezeigt. Ach ja die Funktionalitàt bleibt erhalten, dass heißt ich kann
das Control nur in der Breite àndern oder verschieben. Es werden also
lediglich nur die Grabber nicht mehr angezeigt.



Hallo NG,
habe die Ursache gefunden. Die liegt einfach hier:
\\\
MyBase.Size = New Size(value.Width, 17)
///
Es ist nicht die Zuweisung, sondern der Wert. Ich habe genau den Wert
getroffen, ab wann die Grabber nicht mehr gezeichnet und zwar immer wenn der
Wert kleiner 18 wird. Deswegen ist mir das in der Vorgàngerversion des
Controls nicht aufgefallen, da war es noch 19 Pixel hoch. Der Vorgànger
hatte noch einen Rahmen und der ist jetzt weggefallen, also nur noch 17
Pixel und schon werden die Grabber nicht mehr gezeichnet.
Also nur eine dumme Verknüpfung von Umstànden. :=(
Gruß Scotty

Ähnliche fragen