Удаление пользовательских элементов управления из родительской формы - PullRequest
1 голос
/ 03 января 2011

Я использую этот код для отображения пользовательского элемента управления в главной форме

    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); но это тоже не работает.Пожалуйста, посоветуйте что-нибудь ...

Ответы [ 2 ]

7 голосов
/ 03 января 2011

Может быть, вы создаете другой 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");
3 голосов
/ 03 января 2011

Вы определили управление продажами в 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...