1:先看测试的效果图:

2:全部的代码

 using System;
using System.Windows.Forms; namespace WindowsForms
{
public partial class ParentForm : Form
{
public void ParentGetvalue(string text)
{
this.textBox1.Text = text;
labelp.Text ="获取的值是:"+ text;
}
public Action<string> doinvokeP;
private void ParentForm_Load(object sender, EventArgs e)
{
ChildForm cf = new ChildForm(this);
doinvokeP += cf.ChildGetValue; cf.Show();
}
private void btnParent_Click(object sender, EventArgs e)
{
if (doinvokeP != null)
{
doinvokeP.Invoke(textBox1.Text);
}
} public ParentForm()
{
InitializeComponent();
}
}
}
 using System;
using System.Windows.Forms; namespace WindowsForms
{
public partial class ChildForm : Form
{
public ParentForm cpform;
public void ChildGetValue(string msg)
{
textBoxC.Text = msg;
}
public ChildForm(ParentForm cpform)
{
this.cpform = cpform;
InitializeComponent();
} private void btnChild_Click(object sender, EventArgs e)
{
if (cpform!=null)
{
this.cpform.ParentGetvalue(textBoxC.Text);
}
}
}
}

3:总结

由父到子窗体使用了委托,但是反过来由子到父,一样对应的逻辑,就是不行,后来调式打印,值都传递过去了,就是不行,浪费了一些时间!

最后发现是父窗体根本就不是同一个对象的问题,看来还是要细心才行,欢迎大家有更好的建议,谢谢!

Windows Form父子两个窗体之间的传值测试的更多相关文章

  1. android:两个应用之间怎样传值之activity

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zjh171/article/details/37738579 两个应用之间怎样传值.事实上这个标题太 ...

  2. winform两个窗体之间传值(C#委托事件实现)

    委托 定义一个委托,声明一个委托变量,然后让变量去做方法应该做的事. 委托是一个类型 事件是委托变量实现的 经典例子:两个winform窗体传值 定义两个窗体:form1和form2 form1上有一 ...

  3. QT5中两个窗体之间传递信息(值)

    一个窗体A调用另一个窗体B: 1)包含窗体B的头文件#include"B.h" 2)在窗体A中增加slots函数: public slots: void infoRecv(QStr ...

  4. js 因加入form导致两个table之间出现空白问题

    在<FORM>中加CSS <table> ....... </table> <form style="padding:0; margin:0;&qu ...

  5. WinForm - 两个窗体之间的方法调用

    方法1:   所有权法//Form1://需要有一个公共的刷新方法public   void   Refresh_Method(){ //...} //在调用Form2时,要把Form2的所有者设为F ...

  6. Winform中利用委托实现窗体之间的传值

    点击打开按扭,打开传输值窗体 public partial class Form1 : Form { public Form1() { InitializeComponent(); } public ...

  7. 使用委托实现c#,窗体与窗体之间的传值

    主界面: Form1中的代码: namespace _06委托练习_窗体传值{    public partial class Form1 : Form    {        public Form ...

  8. winform中使用委托进行窗体之间的传值

    一.传统的方式 创建一个公共数据资源类,用于存储窗体2的TextBox的值: public class ComValue { public static string Txtvalue { get; ...

  9. C#窗体之间事件传值

    //第二个窗体 public delegate void DAddress(string address);        public event DAddress ESignAddress; pr ...

随机推荐

  1. WeakHashMap,源码解读

    概述 WeakHashMap也是Map接口的一个实现类,它与HashMap相似,也是一个哈希表,存储key-value pair,而且也是非线程安全的.不过WeakHashMap并没有引入红黑树来尽量 ...

  2. 【win10】通过环境变量来快速打开应用程序

    step1:建一个空文件夹,并把文件夹路径复制到剪贴板. step2:依次右键点击“此电脑”.属性.高级系统设置.环境变量,定位到“系统变量”,点击新建. (说明:环境变量分为用户变量和系统变量,用户 ...

  3. java annotation使用介绍

    还望支持个人博客站:http://www.enjoytoday.cn 介绍 Annotation的中文名字叫注解,开始与JDK 1.5,为了增强xml元数据和代码的耦合性的产物.注解本身并没有业务逻辑 ...

  4. 深入理解JVM虚拟机(二):JDK 内存类的异常分析

    JVM数据存储 堆存储(Heap):对象存储,实际上就是JAVA的数据存储 方法堆栈(Method Stack):存储方法调用的关系. 永久代(Perm):在JDK1.6及之前,常量数据存储于此区域 ...

  5. Troubleshooting ORA-30036 - Unable To Extend Undo Tablespace (Doc ID 460481.1)

    Troubleshooting ORA-30036 - Unable To Extend Undo Tablespace (Doc ID 460481.1) APPLIES TO: Oracle Da ...

  6. python pip 升级 或者换源

    1. 临时换源python -m pip install --upgrade pip -i https://pypi.douban.com/simple pip国内的一些镜像   阿里云  https ...

  7. spring框架开发包官网各版本的下载地址

    链接地址https://spring.io/tools3/sts/legacy,推荐迅雷下载

  8. 8.Java基础_if-else和switch选择语句

    /* 选择语句(基本与C++相同) if-else语句: 格式一: if(关系式){ 语句体; } 格式二: if(关系式){ 语句体; } else{ 语句体; } 格式三: if(关系式){ 语句 ...

  9. mybatis与hibernate的区别持久层对比【面试题】

    Mybatis技术特点: 好处: 通过直接编写SQL语句,可以直接对SQL进行性能的优化: 学习门槛低,学习成本低.只要有SQL基础,就可以学习mybatis,而且很容易上手: 由于直接编写SQL语句 ...

  10. centos7虚拟机端口命令

    cat /etc/redhat-release  #  查看centos 版本 Centos7端口常见命令 虚拟机新开了5005端口,系统内部是显示开了的,但是外部不能访问端口. 一些需要用到的命令: ...