[C#(WinForm)] - 窗体间传值方法
2010-06-02 15:47
162 查看
来源:http://hackline.net/a/school/ymbc/C/2009/1221/2343.html
// 方法一:所有权法
// ************************************************************************
MainForm (按钮名btnMethod1)
publicvoid myMethod1() { this.Text ="方法一"; }
privatevoid btnMethod1_Click(object sender, EventArgs e)
{
ChildForm child1 =new ChildForm();
child1.Owner =this; // 必须设置
child1.ShowDialog();
}
ChildForm (按钮名btnMethod1)
privatevoid btnMethod1_Click(object sender, EventArgs e)
{
MainForm main1 = (MainForm)this.Owner;
main1.myMethod1();
main1.textBox1.Text =this.textBox1.Text;
}
// 方法二:自身传递法
// ************************************************************************
// MainForm (按钮名btnMethod2)
publicvoid myMethod2() { this.Text ="方法二"; }
privatevoid btnMethod2_Click(object sender, EventArgs e)
{
ChildForm child2 =new ChildForm(this);
child2.ShowDialog(this);
}
// ChildForm (按钮名btnMethod2)
private MainForm main2;
public ChildForm(MainForm mainform) // 重载ChildForm
{
InitializeComponent();
main2 = mainform;
}
privatevoid btnMethod2_Click(object sender, EventArgs e)
{
main2.myMethod2();
main2.textBox2.Text =this.textBox2.Text;
}
// 方法三:属性法
// ************************************************************************
// MainForm (按钮名btnMethod3)
publicvoid myMethod3() { this.Text ="方法三"; }
privatevoid btnMethod3_Click(object sender, EventArgs e)
{
ChildForm child3 =new ChildForm();
child3.MAIN3 =this;
child3.ShowDialog();
}
// ChildForm (按钮名btnMethod3)
private MainForm main3;
public MainForm MAIN3
{
get { return main3; }
set { main3 = value; }
}
privatevoid btnMethod3_Click(object sender, EventArgs e)
{
main3.myMethod3();
main3.textBox3.Text =this.textBox3.Text;
}
// 方法四:委托法
// ************************************************************************
// MainForm (按钮名btnMethod4)
publicdelegatevoid myDelegate4(); // 声明一个委托
publicvoid myMethod4() { this.Text ="方法四"; }
privatevoid btnMethod4_Click(object sender, EventArgs e)
{
ChildForm child4 =new ChildForm();
child4.myDelegate4Test +=new myDelegate4(myMethod4);
child4.ShowDialog();
}
// ChildForm (按钮名btnMethod4)
publicevent MainForm.myDelegate4 myDelegate4Test; // 声明事件
privatevoid btnMethod4_Click(object sender, EventArgs e)
{
myDelegate4Test();
}
// 方法一:所有权法
// ************************************************************************
MainForm (按钮名btnMethod1)
publicvoid myMethod1() { this.Text ="方法一"; }
privatevoid btnMethod1_Click(object sender, EventArgs e)
{
ChildForm child1 =new ChildForm();
child1.Owner =this; // 必须设置
child1.ShowDialog();
}
ChildForm (按钮名btnMethod1)
privatevoid btnMethod1_Click(object sender, EventArgs e)
{
MainForm main1 = (MainForm)this.Owner;
main1.myMethod1();
main1.textBox1.Text =this.textBox1.Text;
}
// 方法二:自身传递法
// ************************************************************************
// MainForm (按钮名btnMethod2)
publicvoid myMethod2() { this.Text ="方法二"; }
privatevoid btnMethod2_Click(object sender, EventArgs e)
{
ChildForm child2 =new ChildForm(this);
child2.ShowDialog(this);
}
// ChildForm (按钮名btnMethod2)
private MainForm main2;
public ChildForm(MainForm mainform) // 重载ChildForm
{
InitializeComponent();
main2 = mainform;
}
privatevoid btnMethod2_Click(object sender, EventArgs e)
{
main2.myMethod2();
main2.textBox2.Text =this.textBox2.Text;
}
// 方法三:属性法
// ************************************************************************
// MainForm (按钮名btnMethod3)
publicvoid myMethod3() { this.Text ="方法三"; }
privatevoid btnMethod3_Click(object sender, EventArgs e)
{
ChildForm child3 =new ChildForm();
child3.MAIN3 =this;
child3.ShowDialog();
}
// ChildForm (按钮名btnMethod3)
private MainForm main3;
public MainForm MAIN3
{
get { return main3; }
set { main3 = value; }
}
privatevoid btnMethod3_Click(object sender, EventArgs e)
{
main3.myMethod3();
main3.textBox3.Text =this.textBox3.Text;
}
// 方法四:委托法
// ************************************************************************
// MainForm (按钮名btnMethod4)
publicdelegatevoid myDelegate4(); // 声明一个委托
publicvoid myMethod4() { this.Text ="方法四"; }
privatevoid btnMethod4_Click(object sender, EventArgs e)
{
ChildForm child4 =new ChildForm();
child4.myDelegate4Test +=new myDelegate4(myMethod4);
child4.ShowDialog();
}
// ChildForm (按钮名btnMethod4)
publicevent MainForm.myDelegate4 myDelegate4Test; // 声明事件
privatevoid btnMethod4_Click(object sender, EventArgs e)
{
myDelegate4Test();
}
相关文章推荐
- 关于C#Winform线程调用窗体的使用方法以及窗体的单一显示
- C#的WINFORM登录窗体中,验证码的一个方法整理。
- c# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值两种方法(2)
- 关于C#Winform线程调用窗体的使用方法以及窗体的单一显示
- c# winform窗体重复打开解决方法(非容器窗体)
- [转]使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体
- C# WinForm下,隐藏主窗体,只在进程管理器中显示进程,在任务栏,状态栏都不显示窗体的方法
- c# winform窗体闪烁解决方法
- C# WinForm下,隐藏主窗体的方法
- C#中Winform窗体Form的关闭按钮变灰色的方法
- C# WinForm制作异形窗体与控件的方法
- 【C#基础】之WinForm窗体常用控件的属性、方法及事件简介
- 使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体
- C# winform中一个类中如何调用另一个窗体的控件或方法
- C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,可通过重写WndProc来实现
- C#的WINFORM登录窗体中,验证码的一个方法整理。
- 使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体
- C#实现winform用子窗体刷新父窗体及子窗体改变父窗体控件值的方法
- C#Winform打开窗体的几种方法、注意事项的总结
- C# winform中一个类中如何调用另一个窗体的控件或方法