DataGridView verrouillé sur un hérité de UserControl
J'ai un UserControl avec certains contrôles prédéfinis (zone,bouton,datagridview), ces contrôles sont marqués comme protégées et les composantes de la variable est également protégé.
Je veux hériter de cette base de UserControl à l'autre UserControl, cependant, le DataGridView est toujours enfermé dans le concepteur.
Je soupçonne qu'il peut avoir quelque chose à voir avec le DataGridView la mise en œuvre de ISupportInitilize.
public class BaseGridDetail : UserControl
A un contrôle DataGridView (et al) défini.
public class InheritedDetail : BaseGridDetail
Le contrôle DataGridView est verrouillé
Quelqu'un a une idée comment faire ce contrôle disponibles dans le concepteur après inheritenace?
OriginalL'auteur benPearce | 2008-10-16
Vous devez vous connecter pour publier un commentaire.
Par les regards de lui, DataListView (et quelques autres contrôles) ne prennent pas en charge l'héritage visuel. Il y a une question de connexion connecté ici qui n'a pas l'air plein d'espoir.
Il y a eu des problèmes similaires connecté avec d'autres contrôles de formulaire, par exemple flowlayoutpanel.
Je ne suis pas en mesure de trouver un moyen de forcer l'héritage visuel.
Voici la réponse officielle sur connecter:
"Pour cette version en particulier, le DataGridView n'a pas été conçu pour être utilisé dans visual intheritance. Nous allons garder votre suggestion à l'esprit lors de la planification de notre avenir libération"
C'est de 26/05/2006.
Mise à jour: trouvé ce billet de blog qui peut avoir la réponse
Edit: j'ai été incapable de vérifier le blog de revendications.
Ressemble peut-être plus tard sur cette question
Il ressemble, vous pouvez toujours manipuler la DataListView au moment de l'exécution si, donc, vous pourriez être en mesure de définir les propriétés visuelles (et d'autres paramètres). Ce n'est pas un excellent compromis.
OriginalL'auteur RobS
[1] la création de Votre propre UserControl
[2], l'personnalisé de votre userControl utiliser le dessous Hérité DataGridView:
[3] Hériter à partir de votre Personnalisé UserControl , Et l'alto !!
[4] Ohh n'oubliez pas d'ajouter "le Système de.La conception de" dll
Profiter.
OriginalL'auteur Robocide
Ajouter le contrôle datagrid à un panneau de contrôle et de définir les paramètres du panneau et de la grille de données protégées. Cela permettra à tous de votre forme héréditaire moment de la conception d'accéder aux propriétés de la grille.
Merci, nous avons cherché une solution il y a 4 ans et n'a pas trébuché avec ce post jusqu'à maintenant!
OriginalL'auteur John
J'ai laissé une réponse, mais une re-lecture de votre question et a décidé de le supprimer.
Ce qu'il est sur le DataGridView que vous êtes en train de modifier dans le contrôle héritées? Colonnes? J'ai été capable de le faire par la mise en place d'une méthode protégée dans ma base UserControl et en passant la grille de la colonne de la collection en elle, comme ceci:
Maintenant votre contrôle dérivé pouvez simplement remplacer cette méthode, comme suit:
Oui - avoir lu Rob réponse à votre question, je me suis souvenu pourquoi j'ai dû aller en bas de la "InitGridColumns" chemin dans ma propre application. Visuel de l'héritage n'a tout simplement pas travailler avec DataGridView.
OriginalL'auteur Matt Hamilton
Changement de propriété défini [privé] [protégé] définie à xx.le concepteur.cs
qui est à l'origine de la machine code généré.
par exemple
à
et de le reconstruire.
ensuite, vous pouvez changer la propriété de l'héritage de contrôle.
OriginalL'auteur Na Youngmin