Problem mit gesetzter bezogenen Eigenschaft in Designern zum ersten Mal
-
08-07-2019 - |
Frage
I Entwicklung eines Formulardesigner entwickeln auch einige benutzerdefinierte Steuerung, die von der Standardsteuerung wie Taste erben.
Auch ich habe eine Eigenschaft, die im Zusammenhang zum Beispiel Benutzer ersten Abteilung auswählen müssen, und dann Person auswählen. und nach den Benutzern wählen Person, habe ich Text meines benutzerdefinierten Steuerelement (die von Button in diesem Fall erben).
. Hinweis: Benutzer können Text-Eigenschaft ändern
Alles, was richtig funktioniert, aber wenn ich von DB oder per Drag & Drop lade Steuer Designer zu bilden, Text von control # set,
Nach dem Überschreiben Text-Eigenschaft und debuggen, i Text richtig eingestellt, aber nach meinem Text, Designer-Set Text mit control # gesetzt, dass dies falsch ist.
Wie diese proplem lösen?
Vielen Dank im Voraus
Hamid
Lösung
Es gibt Attribute, die Sie auf Ihre Eigenschaften wie ReadOnly
anwenden können, die zu den Designer von der Einstellung Ihrer Immobilie zu stoppen.
Ich kann den Link im Moment finden, aber es gibt auch eine Methode, um die Formulardesigner zu sagen, dass es Eigenschaften in einer bestimmten Reihenfolge setzen soll.
Edit:
Ok, nicht ganz das, was ich erinnerte sie als, aber ich denke, so etwas wie die ISupportInitialize Schnittstelle.
So etwas wie:
Public Class Test
Implements ISupportInitalise
private _numberOne as integer
private _numberTwo as integer
private _initalised as boolean
Public Property NumberOne() as Integer
Get
return _numberOne
End Get
Set(value as Integer)
if _initalised then
'perform checks here'
end if
_numberOne = value
End Set
End Property
Public Property NumberTwo() as Integer
Get
return _numberTwo
End Get
Set(value as IntegeR)
if _initalised then
'perform checks here'
end if
_numberTwo = value
End Set
End Property
Public Sub BeginInit Implements ISupportInitalise.BeginInit
_initalised = false
End Sub
Public Sub EndInit Implements ISupportInitalise.EndInit
_initalised = true
'perform all checks here'
End Sub
End Class
Auf diese Weise alle Ihre Überprüfung deaktiviert werden kann, bis das Objekt vollständig initialisiert wird.
Andere Tipps
Sie können in Ihrem überschriebenen Text
Setter prüfen, ob er eingestellt ist wird auf controlName#
und, wenn es ist, nichts tun.