Masquer et afficher une cellule du TableLayoutPanel
Mon tablelayout panneau a une colonne et trois lignes. (un quai de panneau de Remplissage dans chaque cellule.)
Maintenant, je voudrais être en mesure de masquer/afficher les lignes . Je veux qu'une seule ligne pour être visible à tout moment ( en se basant sur une sélection de quelques boutons radio) et je veux obtenir redimensionnée afin qu'elle remplisse tout l'espace de la TableLayoutPanel.
Comment puis-je le faire? Toutes les pensées?
source d'informationauteur Bohn
Vous devez vous connecter pour publier un commentaire.
Alors, pourquoi avez-vous utilisé un
TableLayoutPanel
?Viens de mettre trois
Panel
s sur votre formulaire, remplissez tout le monde le contenu de chaque ligne et de définir laDock
la propriété de tous les trois panneaux deFill
. Jeu de deux panneauxVisible = false
et un àtrue
.Si vous voulez voir un autre panneau, il suffit de le rendre visible et de cacher les deux autres (en fonction de votre radio bouton paramètres).
Si les lignes de votre TableLayoutPanel est autosized puis cacher le panneau de contenu permet de masquer la cellule où le panneau est placé trop.
Je suggère de paramétrer les autres lignes de hauteurs de 0 est le moyen le plus facile:
Ligne:
Essayer cette
Mon scénario est similaire. J'avais besoin d'un TableLayoutPanel avec 4 lignes dont chacune devait être visible selon une case de sélection. Ainsi, au lieu de seulement en montrant une rangée à la fois, je peux montrer 1 - 4.
Après la conception de la disposition 1 de colonnes et 4 lignes, les contrôles ont été ajoutés et le Quai mis à Remplir pour chacun.
Puis dans un seul CheckedChanged gestionnaire d'événement pour les cases à cocher, j'ai codé comme indiqué ci-dessous. C'est une sorte de brute force de la méthode, mais, bon...ça marche!!!
J'ai eu la même tâche à faire, et ma solution est la suivante:
Ajouter un TableLayoutPanel à votre formulaire (ou tout récipient).
Ensemble TableLayoutPanel de colonnes et de lignes comte à 1 et la taille à 100%.
Ensemble Dock de Remplissage.
Ensemble GrowStyle à fixedSize.
Affectez à la propriété AutoSize à true.
Puis ajouter par programme pour les trois formes de contrôles, dont l'un, vous avez à montrer selon radio bouton de choix. Assurez-vous que seul l'un d'entre eux est visible. Qui pouvait être fait avec initiale FirstControl.Show(); puis, sur chaque composant RadioButton événement cache l'un et de montrer un autre. vous pouvez "souvenez-vous" dans la variable locale (dire: "currentlyVisibleControl" la référence qui est actuellement visible)
remarque: si vous .Show() plus d'une à la fois. puis TableLayoutPanel wil feu de l'exception qu'il est plein et ne peut pas ajouter un élément.
P. S. Dans Mon propre exemple, j'ai TableLayoutPanel dans la fenêtre MDI et trois formes qui remplacent les uns les autres sur le bouton clique sur eux donc je pense que la copie de mon code source va compliquer la "violence verbale" exemple.
P. P. S. à Partir de mon expérience de Visual Studio fait un peu bizarre de choses dans la conception de la mode, parfois. J'ai dû supprimer et de rajouter le TableLayoutPanel pour définir les propriétés correctement et obtenir les résultats à la fois dans le concepteur et l'exécution. Ainsi, si l'un autosize ou absolue/pourcentage de valeurs ne sont pas représentés sur le concepteur de l'écran, il peut être les concepteurs de problème plutôt que le vôtre. SIMPLEMENT LA SUPPRIMER ET RECOMMENCER.
Pour masquer ligne essayez ceci!!