C# MDI ограничить появление дочерних форм

192
29 июня 2018, 21:50

Есть родительская форма MainForm, и 2 дочерние формы: 1 - StudentsTable и 2 - TeacherTable. Открыть только по каждому экземпляра (т.е. чтоб не была сколько угодно открывать). Если тот же существует дочерняя форма, то тогда кнопка со значением Enabled = false;. После закрытия дочернего формы кнопка должна быть Enabled = true; Пример кода:

 private void button1_Click(object sender, EventArgs e)
    {
        StudentsTable form = new StudentsTable()
        {
            MdiParent = this
        };
        form.Show();
        if (form!=null)
        {
            button1.Enabled = false;
        }
        else
        {
            button1.Enabled = true;
        }
    }

Не получается, как можно реализовать... Помогите пожалуйста!

Answer 1

Как-то так:

private void button1_Click(object sender, EventArgs e)
{
    button1.Enabled = false;
    StudentsTable form = new StudentsTable() { MdiParent = this };
    Action <object, EventArgs> closed = () =>
    {
        form.Closed -= WhenClosed;
        button1.Enabled = true;
    };
    form.Closed += closed;
    form.Show();
}
READ ALSO
Как установить C# версии 7.2?

Как установить C# версии 7.2?

Хотел потестить модификатор доступа private protected (готовлюсь к зачёту), но пишет, что это доступно только в версии 72

149
Обьединение 3х таблиц и агрегация

Обьединение 3х таблиц и агрегация

Есть 3 таблицы - общага, комнаты и студенты

166
Ошибка при подключении MySQL в NetBeans

Ошибка при подключении MySQL в NetBeans

Подскажите в чем причина данной ошибки? Выдавало ошибку: Authentication plugin 'caching_sha2_password' cannot be loaded сделалследующее: Вылезла другая:

175
Cannot make non static method yii\base\Model::rules() static in class app\models\User

Cannot make non static method yii\base\Model::rules() static in class app\models\User

помогите пожалуйста, при входе на страницу регистрации выходит ошибка:

221