只要自己为form2设置一个可读的属性就好了。我写的点代码希望对你有帮助。
Form1:
private void button1_Click(object sender, System.EventArgs e)
{
Form2 fm2=new Form2();
fm2.ShowDialog();
if(fm2.DialogResult==DialogResult.OK)
{
label1.Text =fm2.s;
}
}Form2:
//定义一个公有属性
public string s
{
get
{
return textbox.Text;
}
}
//对话框的确定
private void button1_Click(object sender, System.EventArgs e)
{
this.DialogResult=DialogResult.OK;
}-----------------------------------------------------------------------
这样就好了

解决方案 »

  1.   

    感谢使用微软产品。您的问题是在Form1的两个函数中(button1_click,button2_click)都
    创建了一个新的Form2,这样两个中的Form2.s其实是两个不同的实例。
    可以在button1_click中将Form2.s的值记录下来,然后在button2_click中调用。======================
    - 微软全球技术中心 VC技术支持本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
    为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
    ======================
      

  2.   

    你在BUTTON2中是定义一个新的类
    它和BUTTON1虽然是同一个基类,但是它们是两个不同的实体。
    所以你在BUTTON2中拿S的值是空字符,因为你根本没有给它值。