2010-11-05 9 views
0

Je souhaite étendre le contrôle de case à cocher qui peut être utilisé sur tous les formulaires.Étendre le contrôle de la case à cocher sur C# .net

Si la case à cocher est cochée, elle renverra "Y" sinon "N".

Comment puis-je étendre le contrôle de la case à cocher et l'utiliser sous d'autres formes?

+1

Que signifie 'retourner' Y '? – Jonathan

+1

Pourquoi ne pas simplement utiliser la propriété 'Checkbox.Checked'? –

+0

J'ai une chaîne de caractère dans ma base de données pour les champs spécifiques. Donc je dois stocker "Y" ou "N". Donc tout le temps je dois vérifier si case à cocher est cochée que stocker "Y" sinon "N". Je veux créer une propriété ou un contrôle qui retourne "Y" ou "N" sur la base de la case à cocher est cochée ou non. –

Répondre

1

La méthode d'extension est rapide et facile, mais vous ne pouvez pas le faire dans .NET 2.0, comme vous l'avez mentionné dans vos tags. Vous devez créer un nouveau contrôle utilisateur et y placer un CheckBox.
Vous devrez alors répondre aux choses les plus communes pour le faire agir comme un CheckBox.
Par exemple, vous devez gérer l'événement Resize() de votre contrôle et appliquer tout changement apporté en conséquence au CheckBox à l'intérieur.
Après tout ce qui est fait, vous avez maintenant un CheckBox contrôle entièrement fonctionnel de votre propre création qui imite beaucoup celle de l'original.

Alors seulement, vous pouvez créer une propriété publique get comme ceci:

public bool CheckedText 
{ 
    get 
    { 
     return (CheckBox1.Checked ? "Y" : "N"); 
    } 
} 

Et c'est-il.
Mais si j'étais vous, je ne passerais pas par tous ces tracas.
Je voudrais juste vérifier moi-même avant d'écrire dans la base de données.
L'extension d'un contrôle utilisateur existant pour une telle fonctionnalité minute ne vaut pas la peine, honnêtement.

+0

@krunal shah; J'aurais dû le mentionner: cette solution que je viens de vous donner vous permet de glisser-déposer, de dimensionner et d'aligner le contrôle 'CheckBox' en conception, ce que j'ai supposé ce que vous vouliez faire. Vous pouvez éviter d'avoir à réécrire tous les événements d'interface utilisateur courants comme je l'ai dit et simplement créer une classe qui hérite de 'CheckBox' avec la propriété get publique ajoutée, mais cela signifie que vous ne pouvez pas vraiment le voir ou le mettre en forme ; vous devrez créer dynamiquement au moment du design, et placez les coordonnées correctes, ce qui n'est pas pratique la plupart du temps. – BeemerGuy