Comment ajouter des Boutons en WinForm en Exécution?
J'ai le Code suivant :
public GUIWevbDav()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
//My XML Loading and other Code Here
//Trying to add Buttons here
if (DisplayNameNodes.Count > 0)
{
for (int i = 0; i < DisplayNameNodes.Count; i++)
{
Button folderButton = new Button();
folderButton.Width = 150;
folderButton.Height = 70;
folderButton.ForeColor = Color.Black;
folderButton.Text = DisplayNameNodes[i].InnerText;
Now trying to do GUIWevbDav.Controls.Add
(unable to get GUIWevbDav.Controls method )
}
}
Je ne veux pas créer un formulaire au moment de l'exécution, mais ajouter de la créé dynamiquement les boutons de mon Winform je.e: GUIWevDav
Grâce
OriginalL'auteur Simsons | 2010-07-02
Vous devez vous connecter pour publier un commentaire.
Problème dans votre code, c'est que vous essayez d'appeler
Controls.Add()
méthode surGUIWevbDav
qui est le type de votre forme et vous ne pouvez pas obtenir le Contrôle.Ajouter sur un type, ce n'est pas une méthode statique. Il ne fonctionne que sur les instances.OriginalL'auteur this. __curious_geek
Suffit d'utiliser
this.Controls.Add(folderButton)
.this
est votre forme.this
est la bonne réponse.Grâce Petar, Mais m curiosu de savoir pourquoi nous ne pouvons pas nous utiliser le nom de la forme du "présent" et "GUIWevbDav" font référence à la même forme.
"ce" est un mot-clé pour accéder à l'objet courant. Si vous utilisez directement "GUIWevbDav" alors vous ne travaillez pas avec les instances de "GUIWevbDav" plus et que l'accès à ses membres statiques. Mais "Contrôle" n'est pas un membre statique. Et vous obtenez une erreur de parcours. Lire plus à propos de statique ici dans MSDN: msdn.microsoft.com/en-us/library/79b3xss3(SV.80).aspx
OriginalL'auteur Petar Minchev
Vous avez besoin de travailler avec
de Contrôle.Les contrôles
de la propriété.Dans
Formulaire de Membres de la Classe
vous pouvez voirControls
propriété.L'utiliser comme ceci :
OriginalL'auteur Incognito