C#(Winfrom)窗体传值问题(子窗体回传值给父窗体)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#(Winfrom)窗体传值问题(子窗体回传值给父窗体)相关的知识,希望对你有一定的参考价值。

情况是这样的 From1中有个窗体textbox和一个Button按钮 From2中也有一个textbox和button按钮 现在要做一个这样的事情事情 点击From1的button按钮弹出From2窗体 然后在From2的textbox中输入一串字符串 点击From2中Button按钮关闭From2窗体 并且将刚才输入的字符串在From1窗体中的Textbox中显示 最好给出源代码(先给10分,答案满意在追加15分)
一楼的朋友 能不能给出具体的代码?本人新手,不吝赐教.谢谢!~

参考技术A Form1
--------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Form2ToForm1

public partial class Form1 : Form

public Form1()

InitializeComponent();


private void button1_Click(object sender, EventArgs e)

Form2 form = new Form2();
form.GetForm(this);
form.Show();



--------------------------------------
Form2
-----------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Form2ToForm1

public partial class Form2 : Form

public string str = null;
public Form1 form = null;
public Form2()

InitializeComponent();

public void GetForm(Form1 theform)

form = theform;

private void button1_Click(object sender, EventArgs e)

form.textBox1.Text = textBox1.Text;/*此次需要将Form1设计窗体中的textbox1的属性从Private 改为public就可以再Form2中调用,否则会出现错误*/
this.Close();



----------------------------------
说明:运行后,点击Form1的button1 调出Form2,点击Form2的Button1,关闭Form2,同时form2上的Textbox中的值复制到Form1中的Textbox1中。本回答被提问者和网友采纳
参考技术B 把Form1当成一个参数传到Form2中,你想怎么操作都可以。以前做课设的时候就这么干的。很好用

winfrom 子窗体调用父窗体中的方法

在父窗体里定义委托

 public delegate void inis(string str);

在父窗体中定义要调用的方法

  public void inigs(string gs)
        {
            textBox1.Text = gs;
        }

在new窗体的时候传递委托  (我这里form4是父窗体 form5是子窗体)

 inis i = new inis(inigs);
            Form5 f5 = new Form5(i);
            f5.Show();

在新窗体中接收 

  Form4.inis ii;
        List<string> ls = new List<string>();
        public Form5(Form4.inis ii)
        {
            InitializeComponent();
            this.StartPosition = FormStartPosition.CenterParent;
            this.ii = ii;
        }

 

   要用的时候直接    ii("想要输入父窗体中inigs的参数");

以上是关于C#(Winfrom)窗体传值问题(子窗体回传值给父窗体)的主要内容,如果未能解决你的问题,请参考以下文章

C# winfrom datagridview 子父窗口传值问题

WPF C#怎么窗体间传值

winform界面传值问题

怎样在C#中实现父窗体向子窗体传值和子窗体向父窗体传值

C# winform中父窗体显示问题

C# 模态框传值