Странное поведение при загрузке mdi winform c # .net - PullRequest
0 голосов
/ 22 сентября 2011

Я получаю странное поведение в приложении AC # MDI WinForms.Когда я открываю определенную форму вместе с любой другой формой, эта конкретная форма блокируется.Каким-то образом его группировка ControlBox обеих форм в одну, выглядит следующим образом:

enter image description here

Поскольку формы перестали отвечать, они не закрываются и перестают рисовать:

enter image description here

Странно то, что любая другая комбинация форм работает отлично.Формы загружаются друг на друга, и приложение не останавливается.Но я не могу понять, что отличается в этой форме по сравнению с другими.Все настройки идентичны.Это код в основной MDIform, который инициирует новые дочерние формы, он вызывается из события ToolStrip Button.Click:

    private void OpenForm(object sender)
    {
        if (sender == null) return;            
        ToolStripMenuItem itemSender = (ToolStripMenuItem)sender;

        try
        { 
            WinForm mapping = (WinForm)itemSender.Tag;

            if (!FormList.ContainsKey(mapping.FormName))
            {
                Type frmType = Type.GetType(string.Format("OrderAssist.Forms.{0}", mapping.FormName));
                if (frmType != null)
                {
                    Form newForm = (Form)Activator.CreateInstance(frmType);
                    if (!newForm.IsDisposed)
                    {
                        newForm.Name = mapping.FormName;
                        newForm.Tag = itemSender;
                        newForm.MdiParent = this;
                        newForm.Show();
                        newForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;
                        newForm.FormClosing += new FormClosingEventHandler(newForm_FormClosing);
                        FormList.Add(newForm.Name, newForm);
                        itemSender.Checked = true;
                        newForm.Activate();                         
                    }
                }
                else
                    itemSender.Enabled = false;
            }
            else
                FormList[mapping.FormName].Activate();
        }
        catch (Exception e)
        {
            Exceptions.ProgramException(e, Settings.User.ID, "Exception occured while opening a form.");
            if (itemSender != null)
                itemSender.Enabled = false;
        }
    }

Чтобы сделать вопрос странным, если я заполняю эту форму, которая блокируется данными, и нажимаюна некоторых элементах управления внутри, перед открытием другой формы, ошибка не возникает.

Я не знаю, что делать дальше.

1 Ответ

0 голосов
/ 23 сентября 2011
newForm.WindowState = System.Windows.Forms.FormWindowState.Maximized;

Вышеуказанная строка вызывается для всех ваших элементов управления, в результате чего блоки управления группируются вместе.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...