您的位置:首页 > 其它

# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值

2010-05-07 17:24 483 查看
第一种方法:

用委托,Form2和Form3是同一组

Form2

C#代码



using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace TestMouseMove

{

public delegate void SetVisiableHandler();

public partial class Form2 : Form

{

public Form2()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

Form3 frm = new Form3(new SetVisiableHandler(SetVisiable));

frm.Show();

}

private void SetVisiable()

{

SetVisiable(this.label1, !this.label1.Visible);

}

private void SetVisiable(Control control, bool visiable)

{

if (this.Controls.Contains(control))

{

control.Visible = visiable;

}

}

}

}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace TestMouseMove
{
public delegate void SetVisiableHandler();

public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form3 frm = new Form3(new SetVisiableHandler(SetVisiable));
frm.Show();
}

private void SetVisiable()
{
SetVisiable(this.label1, !this.label1.Visible);
}

private void SetVisiable(Control control, bool visiable)
{
if (this.Controls.Contains(control))
{
control.Visible = visiable;
}
}

}
}


Form3

C#代码



using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace TestMouseMove

{

public partial class Form3 : Form

{

private SetVisiableHandler m_setVisible;

public Form3(SetVisiableHandler setvisible)

{

InitializeComponent();

this.m_setVisible = setvisible;

}

private void btnVisible_Click(object sender, EventArgs e)

{

if (this.m_setVisible != null)

{

this.m_setVisible();

}

}

}

}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace TestMouseMove
{
public partial class Form3 : Form
{
private SetVisiableHandler m_setVisible;

public Form3(SetVisiableHandler setvisible)
{
InitializeComponent();
this.m_setVisible = setvisible;
}
private void btnVisible_Click(object sender, EventArgs e)
{
if (this.m_setVisible != null)
{
this.m_setVisible();
}
}

}
}


第二种方法:

用变量,Form4和Form5是同一组

Form4

C#代码



using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace TestMouseMove

{

public partial class Form4 : Form

{

public Form4()

{

InitializeComponent();

}

#region 子窗口刷新父窗口的值

private string strLabel1 = "";

public string StrLabel1

{

get

{

return strLabel1;

}

set

{

strLabel1 = value;

this.label1.Text = strLabel1;

}

}

#endregion

private void button1_Click(object sender, EventArgs e)

{

Form5 form5 = new Form5(this);//这里注意传个this

form5.Show();

}

}

}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace TestMouseMove
{
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}

#region 子窗口刷新父窗口的值

private string strLabel1 = "";

public string StrLabel1
{
get
{
return strLabel1;
}
set
{
strLabel1 = value;
this.label1.Text = strLabel1;
}
}
#endregion

private void button1_Click(object sender, EventArgs e)
{
Form5 form5 = new Form5(this);//这里注意传个this
form5.Show();
}
}
}


Form5
http://heisetoufa.javaeye.com/blog/382684

C#代码



using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace TestMouseMove

{

public partial class Form5 : Form

{

Form4 form4 = new Form4();

public Form5(Form4 formFrm)//这个构造方法里有参数

{

form4 = formFrm; //这个必须要有

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

form4.StrLabel1 = this.textBox1.Text;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: