我使用此代码在主窗体上显示用户控件
private void MainForm_Load(object sender, EventArgs e)
{
Sell sell = new Sell();
sell.Dock = DockStyle.Fill;
this.Controls.Add(sell);
}
我想从主窗体中删除此用户控件,但此代码无法正常工作
this.Controls.Remove(sell);
我尝试了this.Parent.controls.Remove(sell);
,但它也无效。
请告知一些事情......
答案 0 :(得分:7)
也许您正在创建另一个Sell
控件并尝试删除它?如果是这样,那将无效,因为它与您在表单加载时添加的对象不同。
执行您想要的操作的一种方法是为您的Sell
控件命名,并在以后使用该名称将其删除:
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");
答案 1 :(得分:3)
您在MainForm_Load
scope
中定义了销售控制,并希望将其移除到另一个范围内,以便您不能,您可以在更一般的范围内定义它,然后将其删除:
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);