c#winform如何把另一窗口中的textbox值调用过来

急急急... 急急急 展开
 我来答
freeeeeewind
2019-05-11 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1355万
展开全部

步骤1:在Form1上,布置一个TextBox(textBox1)和一个按钮(button1)

步骤2:在项目中添加一个窗体Form2。在Form2上布置一个Label(label1)。Form2的后台Form2.cs代码如下:

using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        // 新编写一个构造函数
        public Form2(string text) : this()
        {
            label1.Text = text;
        }
    }
}

步骤3:Form1的后台代码Form1.cs如下

using System;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 用我们自己编写的构造函数创建Form2,传入文本框text1.Text
            Form2 f2 = new Form2(textBox1.Text);
            f2.Show();
        }
    }
}

运行结果如下:

追问
我想在form2中点击button然后在form2中的textbox中出现form1中某个textbox的值,这样可以吗?
追答

可以。这样做:

1)修改Form1后台代码Form1.cs,增加一个属性

public partial class Form1 : Form
{
  ……   
 // 增加一个属性Message 
 public string Message
 { 
   get{ return text1.Text;}
 }   
        
 private void button1_Click(object sender,EventArgs e)
  {
    // 用造函数创建Form2
    Form2 f2 = new Form2(this);
     f2.Show();
 }
}

2)在Form2上增加一个Button(button1);后台代码Form2.cs

public partial class Form2 : Form
{
  ……        
 private Form1 form1;
 // 新编写一个构造函数,参数是Form1实例        
 public Form2(Form1 f1) : this()
 {
   form1 = f1;
 }
  
 public void button1_Click(object sendor,EventArgs e)
 {
   // 通过Form1的属性Message取得文本信息
   lable1.Text = f1.Message;
 }
}
魔法软糖™
2019-05-12 · TA获得超过838个赞
知道小有建树答主
回答量:822
采纳率:94%
帮助的人:148万
展开全部

软糖来回答把。

C#和VB.net不一样,窗体是类,而不是唯一的对象,所以必须指向该Form才能引用其中的对象。

首先在Form2定义一个全局静态字段 存储当前窗体

public Form2 curForm2;
private void Form2_Load(object sender, EventArgs e) {
    curForm2 = this;
}

然后在Form5中即可调用,注意,如果Form2从未启动,则会引发null错误。

curForm2.textbox

满意请采纳,谢谢。

更多追问追答
追问

是这样引用吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-05-12
展开全部
直接去另一个form取值,Form2.Textbox1.text就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式