Как установить свойство MDIParent дочерней формы в классе, отличном от MDI?

Я работаю над приложением MDI, в котором есть дочерние формы. Я должен показать дочернее окно после выполнения определенных условий.

Я создал отдельный класс с именем clsDashbord, имеющий метод loadDashboard (), который должен загружать уже созданный frmDashboard. Код приведен ниже:

 public void loadDashboard(String userName)
        {
            _Dashboard = new frmDashboard();
            _Main = new frmMDI();
           // _Dashboard.MdiParent = _Main;
            _Dashboard.Text = userName;
            _Dashboard.Show();

        }

Форма не отображается, если я установил для MDIParent значение Main, которое является переменной экземпляра формы MDI, в противном случае она отображается. Как это сделать?


person Volatil3    schedule 28.03.2013    source источник
comment
Вы установили для ismdicontainer значение true в форме mainmdi?   -  person Immortal Blue    schedule 28.03.2013
comment
@ImmortalBlue да, у меня есть. Он показывает другие формы.   -  person Volatil3    schedule 28.03.2013
comment
_Main = новый frmMDI (); _Dashboard.MdiParent = _Main; При этом форма не отображается, в противном случае это делается   -  person Volatil3    schedule 28.03.2013
comment
Есть ли шанс опубликовать образец репродукции проекта?   -  person Immortal Blue    schedule 28.03.2013


Ответы (1)


Это больше похоже на проблему с областью видимости, если посмотреть на строку '_Main = new frmMDI ();'

Следуй этим шагам:

  1. создать класс с именем 'ReferenceTable'
  2. создать статическую переменную с именем _Main в ReferenceTable
  3. установить ReferenceTable._Main = new frmMain (); // в Program.cs
  4. set childform.Parent = ReferenceTable._Main // во всем коде дочерней формы перед вызовом методов Show () или showDialog ()
person Talal    schedule 28.03.2013