В кнопке нажмите даже обработчик Form1, я хочу создать Form2. Вот мой код,
четный обработчик button1 Form1
// button1 belongs to Form1
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2("www.google.com");
form2.ShowDialog();
}
Form2 contructor
public Form2 (string str)
{
InitializeComponent();
address = str;
button2.Text = str; // button2 belongs to Form2
}
public Form2()
{
InitializeComponent();
}
Мой вопрос и проблема в том, что обработчик событий кнопки 1 выполняется потоком пользовательского интерфейса Form1, и если я создаю новую форму Form2 в потоке пользовательского интерфейса Form1 и использую поток пользовательского интерфейса для установки элемента пользовательского интерфейса Form2 (button2.Text), это законно? Насколько я понимаю, у каждой формы есть собственный поток пользовательского интерфейса, а элементы пользовательского интерфейса (например, кнопка) должны обрабатываться только потоком отдельного владельца форм? Если мой код неверен, то я буду признателен, если кто-нибудь покажет мне, как можно создать другую форму внутри обработчика событий текущей формы и передать параметры.
Я использую VSTS 2008 + C # + .Net 2.0.