Как НЕ UserControl.dispose () - PullRequest
       2

Как НЕ UserControl.dispose ()

0 голосов
/ 11 декабря 2018

У меня есть ситуация, когда пользователь нажимает на X пользовательского элемента управления и, если существует определенное условие, я хочу продолжать отображать пользовательский элемент управления.Я думал, что вызов base.Dispose(false) поможет, но это не так.Как мне это сделать?

FeatureView.Designer.cs

partial class FeatureView
{
    // User clicked the X on the control
    protected override void Dispose(bool disposing)
    {
        // Note: base.GetType() = FeatureView
        if (someCondition) // then dispose
        {
            base.Dispose(true);
        }
        else // keep displaying the Feature, do not dispose
        {
            base.Dispose(false);  // nope
        }
    }
 }

FeatureView.cs

 public partial class FeatureView : System.Windows.Forms.UserControl
 {

 }

1 Ответ

0 голосов
/ 11 декабря 2018

Ваш пользовательский элемент управления должен быть встроен в форму, чтобы быть видимым.В форме lvel вы можете перехватить событие FormClosing и установить для отмены значение true.

this.FormClosing += Form_ManageFavorites_FormClosing;

private void Form_ManageFavorites_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...