A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

怎么样访问另一个窗体的一个控件的值?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

倒序浏览
首先,创建两个 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,并显示出来.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
在窗体一中定义一个变量
private string a;
public void Set(string b)
{
     a=b;
}
在窗体二中
Form1 form1=new Form1 ();
form1.SetSinger(b);
form1.ShowDialog();
这里的b就是datagridview中a的值
这样就可以传递过去··相当于给变量赋值
回复 使用道具 举报
Form2 form = new Form2(textBox1.text)
form.show();

修改Form2的构造函数,并添加一个私有变量
         private string str;
    public Form2(string strr)
        {
          str=strr;
        }
按此方法就行了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
可以理解为调用另一个类的属性或者字段,要先实例化被调用的窗体的那个类。楼上代码正解,我给出的是思想呵呵
回复 使用道具 举报
比如要访问form2中label1的属性,只需把form2的InitiallizeComponent()中的private System.Windows.Forms.Label label1;改为public System.Windows.Forms.Label label1;就可以访问了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马