c# 子窗口如何将信息传至父窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 子窗口如何将信息传至父窗口相关的知识,希望对你有一定的参考价值。

在父窗口点击一个按钮进入子窗口,当子窗口关闭时,将子窗口的一些数据传给父窗口,该怎么做呢?着急啊,求解答,谢谢大家

最简单的方式:在子窗口里将要传出来的数据写成public的,父窗口中用子窗口的实例就能访问到了。
好一点的方式:申明一个委托,把委托传到子窗口中,在子窗口关闭的时候调用这个委托函数,把参数传进去就可以了,这就叫回调函数了。
参考技术A 回调委托的典型应用。
public class Form1

private void button_Click(object sender, EventArgs e)

Form2 f = new Form2();
f.GetValue+= new EventHandler(SendValue);
f.ShowDialog();

//操作form2传来的值
private void SendValue(object sender, EventArgs e)

string form2Str = sender as string;
//form2Str就是传过来的值


public class Form2

public event EventHandler GetValue;
//窗口关闭事件
private void form_Closed(object sender, EventArgs e) //参数类型不记得了,自己点出来

if (GetValue!= null)

string s = txtBox1.Text;//假如这个就是要传的值
GetValue(s, e);


本回答被提问者和网友采纳
参考技术B 百度搜一下C# winform传值,很多现成的方法和代码实例供你复制和参考

C#里在子窗口与父窗口之间进行数据传送

在C#里经常需要在子窗口与父窗口之间进行数据传送,或者调用,虽然有很多方法可以实现,但是采用委托还是比较简单和直接的方式。
所以这次针对委托来演示一下怎么样实现这种功能。

下面先来创建一个带两窗口的例子,如下图所示:

接着来看一下,创建父窗口的代码:


namespace WindowsForms_Delegate

    partial class Form_Main
    
        /// <summary>
        /// 必需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// 清理所有正在使用的资源。
        /// </summary>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        
            if (disposing && (components != null))
            
                components.Dispose();
            
            base.Dispose(disposing);

以上是关于c# 子窗口如何将信息传至父窗口的主要内容,如果未能解决你的问题,请参考以下文章

父子组件信息传递(子传父)

C# WPF如何关闭通过父窗口打开的所有子窗口

C# winform 父窗口子窗口按钮控制

C#弹出子窗口后,父窗口就不能动

如何在vs 2005 中将mdi父窗口分割成两部分,一边treeview,一边显示子窗口(c# winform)

C#里面,子窗口关闭以后,刷新一个父窗口的控件的属性,怎么办