2016-06-23 4 views
1

Я использую приложение Windows Form Приложение, все, что я знал, пробовал, но не могу получить доступ к Child form Control из родительской формы.
Как установить Доступ к форме родительской формы Из ее дочерней формы

код, который я пытался до сих пор:

this.ParentForm.Controls["PanelContainer"].Visible = false; 

и

this.MdiParent.Controls["pnlContainer"].Visible = false; 

и

Form myform = btnLogin.FindForm(); 
myform.Parent.Controls["PanelContainer"].Visible = false; 

Я попытался установить общественную собственность на панели управления:

public Panel PanelContainer 
{ 
    set { pnlContainer = value; } 
    get { return pnlContainer; } 
} 

но все я получаю исключение, "Onject Ссылка не указывает на экземпляр объекта"

EDIT1: Вот снимок моей формы:

enter image description here

EDIT2: это как я добавляю форму в ContainerPanel

var login = new Login(); 
    login.TopLevel = false; 
    login.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
    PanelContainer.Controls.Add(login); 
    login.Show(); 
+0

Возможный дубликат [Что такое NullReferenceException, и как это исправить?] (Http://stackoverflow.com/questions/4660142/what-is- a-nullreferenceexception-and-how-do-i-fix-it) – adv12

+0

Это было очень полезно @ adv12, я знаю, что такое исключение для ссылочной ссылки, все, что я хочу знать, - это доступ к элементу управления. – CodeIt

+0

Действительно ли это форма входа в систему, являющаяся дочерней формой MDI? Похож на центральную форму диалога по основной форме. Формы дочерних форм MDI не ведут себя правильно, если у них нет стандартной значимой границы, которой у вас нет. – LarsTech

ответ

0

Controls объект с Control - это коллекция, доступная по индексу.

this.ParentForm.Controls[0].Visible. . .

Имя, которое вы ссылаетесь бы внутри что-то вроде:

this.ParentForm.Controls[0].Name 
+0

Все еще существует исключение ссылки Null, – CodeIt

+0

Хорошо отлаживается на этой строке и проверяет 'ParantForm' и' Conrtols' вероятно, один из них является нулевым. – pay

+0

Родительская форма null, я не знаю, почему она равна нулю, – CodeIt

0

убедитесь, что управление в родительской форме устанавливается на публике. После этого, доступ к этим управление так просто, как

ParentForm frmParentForm= (ParentForm)Application.OpenForms["ParentForm"]; 
frmParentForm.YourControlName 
+0

Фактически, я получаю родительскую форму, но всякий раз, когда я добавляю дочернюю форму в панель родительской формы, она удаляет родительскую ссылку – CodeIt

Смежные вопросы