c# winform中,怎样得到另一窗体的值

迷茫了,在vb中可以很简单实现的问题在c#中竟如此困难,我的vb代码是这样的:form2中:privatesubbotton1_click()text1.text=for... 迷茫了,在vb中可以很简单实现的问题在c#中竟如此困难,我的vb代码是这样的:
form2中:
private sub botton1_click()
text1.text=form1.text1.text'就这一句能搞定的事,c#搞复杂是为什么?求解?
end sub
换成c#,如何得到?
展开
 我来答
freeeeeewind
推荐于2017-10-02 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1244万
展开全部

以下示例程序实现:

(1)Form2从Form1获取一个字符串

(2)Form2修改这个字符串后,再将修改后的字符串返回给Form1显示;

实现方法:

(1)在Visual Studio中创建一个“Windows 窗体应用程序”项目

(2)向项目中添加Form2

(3)在Form1上布置一个Label和一个Button

(4)在Form2上布置一个TextBox和一个Button

(5)窗体代码Form1.cs

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            label1.Text = "你好,世界!";
            button1.Text = "显示Form2";
        }

        // 添加一个公共属性 StringValue
        public string StringValue
        {
            get { return label1.Text; }
            set { label1.Text = value; }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 实例化Form2
            // 实例化使用Form2重载的构造函数,详见Form2.cs
            Form2 f2 = new Form2(this);
            f2.Show();
        }
    }
}

(5)窗体代码Form2.cs

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        // 对Form1实例的引用
        Form1 f1;

        public Form2()
        {
            InitializeComponent();
        }

        // 重载构造函数
        // 构造函数参数 f1:对Form1实例引用
        public Form2(Form1 f1)
            : this()
        {
            // 建立对Form1实例的引用
            this.f1 = f1;
            // 通过f1.StringValue属性获取Form1上label1显示的内容
            textBox1.Text = f1.StringValue;
            
            button1.Text = "关闭";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 关闭前,利用f1.StringValue属性,将textBox1的内容
            // 显示在Form1上的label1中
            f1.StringValue = textBox1.Text;
            this.Close();
        }
    }
}

(6)运行

点击Form1上“显示Form2”按钮后

在Form2中,修改textBox1内容

点击Form2上“关闭”按钮后

老冯文库
推荐于2018-01-15 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8733

向TA提问 私信TA
展开全部
假设Form2窗口需要访问Form1窗口中控件的值,可以这样做:
(1)将Form1窗口中需要被其他窗体访问的控件设置为公共静态:
public static TextBox txtName = ...;

(2)在Form2窗口中引用Form1窗口中的控件
String name = Form1.txtName.Text;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杨烜桦
2012-03-06 · 超过21用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:48.5万
展开全部

在窗体中创建一个新实例,然后传你需要的值,在另一个窗体就可以接收了。如图:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
810539199
2012-03-12
知道答主
回答量:28
采纳率:0%
帮助的人:16.5万
展开全部
我这里有两种方法 第第一种方法定义一个全局变量,在定义变量的属性,进行属性的传值,当然传值的时候在另一个窗体要实例化第一个窗体,第二个方法是双窗体传值,意思是你两个窗体都打开 一个窗体可以不用关闭直接传到另一个上,就是在实例化的时候用OWNER,这个我也不是很懂,好像是窗体互相传递引用,你试试,希望能帮到你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不肖说焦虑
2012-03-06 · 超过17用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:39万
展开全部
1、全局变量
2、窗体间传参:
Form2 f2=new Form1(参数);
this.show(f2);
....................
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式