黑马程序员技术交流社区

标题: 怎么样访问另一个窗体的一个控件的值? [打印本页]

作者: 徐艳勇    时间: 2012-10-15 18:40
标题: 怎么样访问另一个窗体的一个控件的值?
怎么样访问另一个窗体的一个控件的值?
作者: 穆_升    时间: 2012-10-15 20:32
首先,创建两个 WinForm.
每个WinForm中各加入一个Button和一个TextBox.
在WinForm2中写入代理和事件如下:
//代理声明
public delegate void SendMessage(string str);
//事件声明
public event SendMessage SendEvent;
private void btnSend_Click(object sender, EventArgs e)
{
       //调用事件
      SendEvent(textBox1.Text);
}
在WinForm1中写入如下代码:
private void btnShow_Click(object sender, EventArgs e)
{
        Form2 f2 = new Form2();
        //Form2事件注册
        f2.SendEvent+=new Form2.SendMessage(GetMessage);
        f2.Show();
}
//代理调用的方法
public void GetMessage(string str)
{
       textBox1.Text = str;
}
在点击WinForm1的Button弹出WinForm2后,在 WinForm2中文本框输入文字,然后点击按钮,信息将会立刻发送到WinForm1,并显示出来.
作者: 许庭洲    时间: 2012-10-15 20:51
在窗体一中定义一个变量
private string a;
public void Set(string b)
{
     a=b;
}
在窗体二中
Form1 form1=new Form1 ();
form1.SetSinger(b);
form1.ShowDialog();
这里的b就是datagridview中a的值
这样就可以传递过去··相当于给变量赋值
作者: 邸亚星    时间: 2012-10-15 21:21
Form2 form = new Form2(textBox1.text)
form.show();

修改Form2的构造函数,并添加一个私有变量
         private string str;
    public Form2(string strr)
        {
          str=strr;
        }
按此方法就行了
作者: 管真    时间: 2012-10-17 13:23
可以理解为调用另一个类的属性或者字段,要先实例化被调用的窗体的那个类。楼上代码正解,我给出的是思想呵呵
作者: 邓超军    时间: 2012-10-18 10:04
比如要访问form2中label1的属性,只需把form2的InitiallizeComponent()中的private System.Windows.Forms.Label label1;改为public System.Windows.Forms.Label label1;就可以访问了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2