你得先获得B窗体的对象,方法有很多:比如你可以在创建B窗体的时候把B窗体的对象保存在一个全局静态变量中,那么你随时可以调用这个变量操作。static class allform { public static Form formb; }//在某个操作中打开B窗体 allform.formb = new Form1(); allform.formb.Show();//A窗体中是使用B窗体 allform.formb.Text = "";
假设你要在form1中点击按钮button1改变form2的标题,form1中的代码为:public partial class Form1 : Form { Form2 frm2; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) {
frm2 = new Form2(); frm2.text="设定你想要的!!"; frm2.Show(); } }
{
public static Form formb;
}//在某个操作中打开B窗体
allform.formb = new Form1();
allform.formb.Show();//A窗体中是使用B窗体
allform.formb.Text = "";
{
Form2 frm2;
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
frm2 = new Form2();
frm2.text="设定你想要的!!";
frm2.Show();
}
}
这样可以取到已经打开的窗体的句柄Application.OpenForms["Form1"].Text="Hello";
// 这里的“Form1”就是你想要的那个已打开(包括隐藏的)窗体的Name。
public delegate void ClickMethod();
public event ClickMethod selfClickEvent;protected virtual void OnselfClick(EventArgs e)
{
if(selfClickEvent!=null)
selfClickEvent();
}并在A的button_click中触发自定义事件:OnSelfClick()然后在B中注册这个事件,并绑定方法
objeceA.selfClickEvent += delegate{this.text="11111111111"};
页面1
public TextBox MyTexBox
{
get
{
return this.textBox1;
}
} private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(this);
form2.Show();
}页面2
Form1 form1 = null;
public Form2(Form1 form)
{
InitializeComponent();
form1 = form;
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
form1.MyTexBox.Text = "123";
}我作的是TextBox的例子,其它一样哦!