Détecter si votre contrôle est en cours de création


Certaines propriétés ne sont valables que lorsque comparé à d'autres propriétés. Lors de l'initialisation, il est logique d'autoriser les propriétés non valides. C'est une façon de vérifier si votre contrôle est en cours d'initialisation.

Prenons l'exemple d'un contrôle qui a le Minimum, le Maximum et la Valeur des propriétés (Int32).

états Logiques de ce Minimum ne doit pas être supérieure à la valeur Maximale, et cette Valeur doit être dans la fourchette Minimum..Maximale. Si une tentative est faite pour définir une propriété à une illogique valeur que vous pourriez vouloir lever une exception.

Le problème est que comme composant d'un écrivain, vous n'avez aucun contrôle sur ce qui commande l'utilisateur définit les changements de propriétés, et peuvent se retrouver avec une section initialisation qui ressemble à ceci:

myControl1.Valeur = 1000
myControl1.Maximum = 2000
myControl1.Minimum = 500

si les valeurs par défaut pour le contrôle sont Minimum=0, Maximum=10, Valeur=0 alors il est bien évident que la première ligne qui fixe la Valeur de 1000 provoquera une erreur.

Pour surmonter ce problème, vous pouvez utiliser le ISupportInitialize interface. Par exemple.....

public MyControl: Contrôle, ISupportInitialize
{
Boolean isInitializing = false
Int32 minimum = 0
Int32 valeur = 0
Int32 maximum = 10

void ISupportInitialize.Section begininit()
{
isInitializing = true
}

void ISupportInitialize.EndInit()
{
isInitializing = false
}

public Int32 Minimum
{
get {return minimum }
ensemble
{
if (!isInitializing)
{
Faites de votre validation ici
}
minimum = valeur
}
}
}

L' .NET framework va vérifier chaque composant pour ISupportInitialize avant de définir ses propriétés, et si la prise en charge sera d'effectuer les opérations suivantes

composant.Section begininit()
...de définir les propriétés du composant...
composant.EndInit()









Detecter si votre controle est en cours de creation


Detecter si votre controle est en cours de creation : Plusieurs milliers de conseils pour vous faciliter la vie.


Certaines proprietes ne sont valables que lorsque compare a d'autres proprietes. Lors de l'initialisation, il est logique d'autoriser les proprietes non valides. C'est une façon de verifier si votre controle est en cours d'initialisation.

Prenons l'exemple d'un controle qui a le Minimum, le Maximum et la Valeur des proprietes (Int32).

etats Logiques de ce Minimum ne doit pas etre superieure a la valeur Maximale, et cette Valeur doit etre dans la fourchette Minimum..Maximale. Si une tentative est faite pour definir une propriete a une illogique valeur que vous pourriez vouloir lever une exception.

Le probleme est que comme composant d'un ecrivain, vous n'avez aucun controle sur ce qui commande l'utilisateur definit les changements de proprietes, et peuvent se retrouver avec une section initialisation qui ressemble a ceci:

myControl1.Valeur = 1000
myControl1.Maximum = 2000
myControl1.Minimum = 500

si les valeurs par defaut pour le controle sont Minimum=0, Maximum=10, Valeur=0 alors il est bien evident que la premiere ligne qui fixe la Valeur de 1000 provoquera une erreur.

Pour surmonter ce probleme, vous pouvez utiliser le ISupportInitialize interface. Par exemple.....

public MyControl: Controle, ISupportInitialize
{
Boolean isInitializing = false
Int32 minimum = 0
Int32 valeur = 0
Int32 maximum = 10

void ISupportInitialize.Section begininit()
{
isInitializing = true
}

void ISupportInitialize.EndInit()
{
isInitializing = false
}

public Int32 Minimum
{
get {return minimum }
ensemble
{
if (!isInitializing)
{
Faites de votre validation ici
}
minimum = valeur
}
}
}

L' .NET framework va verifier chaque composant pour ISupportInitialize avant de definir ses proprietes, et si la prise en charge sera d'effectuer les operations suivantes

composant.Section begininit()
...de definir les proprietes du composant...
composant.EndInit()


Détecter si votre contrôle est en cours de création

Détecter si votre contrôle est en cours de création : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation