Проект c # Forms: передача информации в пользовательский контроль - PullRequest
2 голосов
/ 07 ноября 2011

Я создал приложение для форм, которое использует TabControl. Для каждой вкладки я хочу разместить один UserControl (созданный в том же проекте), который содержит все остальные элементы управления. Однако мне потребуется передать некоторую информацию из первичной формы в UserControl, чтобы он работал со свойствами, методами и т. Д. Как я могу / должен это сделать?

Я попытался создать конструктор с параметрами, но затем Designer завершился неудачей, и мне пришлось войти и удалить добавленные ссылки UserControl.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 07 ноября 2011

вы можете передавать информацию с помощью функции, созданной в файле usercontrol.cs.

, например, в usercontrol.cs

public string name;
public void SetName(string pname)
{
this.name = pname;
} 

или, возможно, вы хотите изменить имя кнопки

Button mybutton = new Button();
public void SetButtonName(string btname)
{
this.mybutton.Text = btname;
}

Теперь вы можете вызывать эти функции в вашем mainform.cs

Myusercontrol usc = new Myusercontrol();
usc.SetName("this is string for 'name' string");
usc.SetButtonName("this is string for button text");
0 голосов
/ 07 ноября 2011

Попробуйте создать конструктор, а также создать конструктор по умолчанию без параметров.

Взгляните на этот вопрос

0 голосов
/ 07 ноября 2011

Параметр конструктора является правильным методом. Однако должен существовать конструктор по умолчанию, чтобы конструктор мог создавать (и рисовать) копию объекта.

Мой обычный обходной путь - поместить предложение в конструктор по умолчанию, проверив, что мы находимся в «режиме разработки», и, если нет, выдать исключение:

public class MyForm: Form
{
   public MyForm()
   {
      if(!DesignMode) throw new InvalidOperationException("Cannot use default constructor in production code");
   }

   public MyForm(MyDependency dependent)
   {
      ...
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...