доступ к элементам управления родительской формы из дочерней формы - PullRequest
3 голосов
/ 03 января 2011

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

модификаторы = общедоступные я дополнительно написал функцию в родительской форме

public TextBox txtbox
{
  get
  {
    return  mybox;
  }
  set
  {
    mybox= value;
  }
}

в детской форме при написании this.ParentForm. (не вижу mybox). чего мне не хватает С уважением,

Ответы [ 3 ]

4 голосов
/ 03 января 2011

Поскольку ParentForm будет возвращать Form, а не вашу форму, вам необходимо привести ее к виду, прежде чем вы сможете получить доступ к любому из ваших пользовательских свойств:

((MyForm)this.ParentForm).textbox = "new text!";

Кроме того,Вы устанавливаете элемент управления целом , а не только текст.

Попробуйте, чтобы раскрыть только свойство text:

public string txtbox
{
  get
  {
    return  mybox.Text;
  }
  set
  {
    mybox.Text = value;
  }
}
3 голосов
/ 03 января 2011

Я думаю, что проблема в том, что ParentForm имеет тип Form, который не имеет члена txtbox. Вам нужно привести ParentForm к вашей форме (предположим, что это Form1), например:

((Form1)this.ParentForm).txtbox
0 голосов
/ 03 января 2011

Случайное предположение без какого-либо фактического кода: mybox скорее всего не объявлено публичным.

Редактировать: Или, да, как говорит Андрей - вы не приводили ParentForm к типу родительской формы.

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