2011-01-03 4 views
1

J'utilise ce code pour afficher le contrôle de l'utilisateur sur le formulaire principalSuppression des contrôles utilisateur du formulaire parent

private void MainForm_Load(object sender, EventArgs e) 
    { 
     Sell sell = new Sell(); 
     sell.Dock = DockStyle.Fill; 
     this.Controls.Add(sell); 
    } 

Je veux supprimer ce contrôle utilisateur de la forme mais ce code ne ne fonctionne pas

this.Controls.Remove(sell); 

J'ai essayé this.Parent.controls.Remove(sell); mais cela ne fonctionne pas non plus. S'il vous plaît aviser quelque chose ...

+0

Tout d'abord dans mon esprit est que ce pourrait être un problème de portée. Essayez-vous de supprimer 'sell' de la méthode' MainForm_Load' ou d'une autre méthode? –

Répondre

7

Peut-être que vous créez un autre contrôle Sell et en essayant de supprimer cela? Si tel est le cas, cela ne fonctionnera pas car il s'agit d'un objet différent de celui que vous avez ajouté au chargement du formulaire.

Une façon de faire ce que vous voulez serait de donner un nom à votre Sell contrôler et d'utiliser ce nom pour le supprimer plus tard:

private void MainForm_Load(object sender, EventArgs e) 
{ 
    Sell sell = new Sell(); 
    sell.Name = "mainSell"; 
    sell.Dock = DockStyle.Fill; 
    this.Controls.Add(sell); 
} 

// Later... 
this.Controls.RemoveByKey("mainSell"); 
4

Vous avez défini vendre contrôle MainForm_Loadscope et que vous voulez le supprimer dans une autre portée de sorte que vous ne pouvez pas, vous pouvez le définir dans une portée plus générale, puis l'enlever:

Sell sell = new Sell(); 
private void MainForm_Load(object sender, EventArgs e) 
{ 
    sell.Dock = DockStyle.Fill; 
    this.Controls.Add(sell); 
} 

// other scope 
this.Controls.Remove(sell); 
+0

Merci Frédéric Hamidi et Saeed –

Questions connexes