Как передать значение из пользовательского элемента управления в его родительскую форму?

У меня есть пользовательский элемент управления, который предположительно передает значение своей родительской форме, которая является формой1.

Я использовал код ниже.

Пользовательский контроль

public int _control;
 public int control
 {
 get{return _control;}
 set{_control=value;}
 }

Form1 присваивает значение UserControl

UserControl1 uc=new UserControl1();
 uc.control=1;

Пользовательский элемент управления Button_Click

var parent = this.Parent as Form1;
 //MessageBox.Show(_control.ToString());
 parent.userNo=_control;

Form1

public int _userNo;
 public int userNo
 {
 get{return _userNo;}
 set{_userNo=value;}
 }

Проблема в том, что когда я использовал messagebox.show, он будет отображаться 1, но когда я использовал

parent.userNo=_control;

он возвращает Null Reference Exception.

Пожалуйста помоги!!!

1 ответ

Это означает, что у родителя есть Null. это связано с тем, что родительский элемент НЕ является экземпляром класса Form1.

на самом деле, этот актер:

this.Parent as Form1

возвращает NULL, когда this.Parent не относится к типу Form1, но является другим контейнером. альтернативно, если родительский элемент не установлен. Чтобы исправить это, вам нужно получить ссылку на форму на пользовательский элемент управления или, альтернативно, установить родительский элемент. что-то вроде:

UserControl1 uc=new UserControl1();
uc.control=1;
uc.Parent = this;

licensed under cc by-sa 3.0 with attribution.