1.两个窗体的联系
1)、构造传递
public Form2 (string m)
{
InitializeComponent();
label1.Text = m;
}
//Form 1调用
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(textBox1.Text.Trim());
f2.Show();
}
2)、公有字段传递
public string Msg
{
get { return label1.Text.Trim(); }
set { label1.Text = value; }
}
Form1调用
Form2 f2;
private void button1_Click(object sender, EventArgs e)
{
//Form2 f2 = new Form2(textBox1.Text.Trim());
//f2.Show();
//f2 = new Form2(this);
//f2.Show();
f2.Msg = textBox1.Text;
}
2.委托与事件传递:
功能:实现子窗体中改变父窗体的内容,通过委托和事件传值给父窗体。
委托的声明:delegate <函数返回类型> <委托名> (<函数参数>) public delegate void TextChangedHandler(string s);
事件声明:event <委托类型> 事件名 public event TextChangedHandler SelTextChanged;
3. 线程与进程的区别:
窗体线程规则:除了极少数例外情况,都不要在它的创建线程以外的线程中使用控件中的任何成员
若要使用,则需要异步委托调用