iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#如何实现不同窗体之间传递参数
  • 275
分享到

C#如何实现不同窗体之间传递参数

2023-07-05 06:07:16 275人浏览 安东尼
摘要

今天小编给大家分享一下C#如何实现不同窗体之间传递参数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。C#不同窗体之间传递参数

今天小编给大家分享一下C#如何实现不同窗体之间传递参数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

C#不同窗体之间传递参数

主要两个内容:

①父窗口给子窗口传递参数,

②子窗口给父窗口传递参数。

1.父窗口向子窗口传递参数

这个就比较简单了,级别高一点访问也轻松一点。具体的原理我就不讲了(感觉说不清楚OJ2…),总之使用类的私有变量然后父窗口赋值就可以了。

父窗口(mainFORM)代码:

namespace demo_Params{    public partial class mainForm : Form    {        public mainForm()        {            InitializeComponent();        }                //传递变量到子窗口        private void btn_Input_BtnClick(object sender, EventArgs e)        {            childForm childForm = new childForm();//childForm为新建窗口类            childForm.str = this.tb_MainFormIn.InputText ;//str为子类的公有变量            if (childForm.ShowDialog() == DialogResult.OK) return;        }            }}

子窗口(childForm)代码:

namespace demo_Params{    public partial class childForm : Form    {        public childForm()        {            InitializeComponent();        }        //私有变量和赋值,value值在父窗口传递        private string w_str;        public string str        {            set            {                w_str = value;            }        }        //显示父窗口的变量到文本框        private void btn_getPara_BtnClick(object sender, EventArgs e)        {            this.tb_childFormIn.Text = w_str;        }    }}

C#如何实现不同窗体之间传递参数

2.子窗口向父窗口传递参数

这个就比较麻烦了,看了很多,自己用起来感觉不错的是通过委托事件和事件触发执行函数来解决参数的传递和接受。道理就不说了,直接COPY用起来。

父窗口(mainForm)代码:

namespace demo_Params{    public partial class mainForm : Form    {        public mainForm()        {            InitializeComponent();        }        //接受参数初始化        string str = "";              //打开子窗口childForm        private void btn_openWin_BtnClick(object sender, EventArgs e)        {            childForm childForm = new childForm();            childForm.getParam += new backParam(fun_GetChildParam);//绑定事件            if (childForm.ShowDialog() == DialogResult.OK) return;        }        //委托事件执行方法        void fun_GetChildParam(string w_childpara)         {            str = w_childpara;        }        //显示参数到文本框,看看参数能不能调用        private void btn_Output_BtnClick(object sender, EventArgs e)        {            tb_MainFormOut.InputText = str;        }    }}

子窗口(childForm)代码:

namespace demo_Params{    public delegate void backParam(string str);//声明委托    public partial class childForm : Form    {        public childForm()        {            InitializeComponent();        }        public event backParam getParam;//委托事件,接受一个string变量                //传回变量 关闭窗口        private void btn_childFormBack_BtnClick(object sender, EventArgs e)        {            getParam(this.tb_childFormIn.Text);//将变量委托            this.DialogResult = DialogResult.OK;        }    }}

C#如何实现不同窗体之间传递参数
C#如何实现不同窗体之间传递参数

3.代码说明

两种传递参数的情况,我写在了一个程序里面。整理时为了区分,有所删改。(子传父代码块内不含父传子内容)

直接至WPF项目中,应该不能运行。 使用了第三方控件,部分控件属性、事件命名不同。大家如要复现使用TextBox和Button即可。

C#子窗体与父窗体之间的参数传输

最近在做项目时涉及到了子窗体与父窗体之间的参数传输问题,通过查阅与学习总结了一种方法。

1.子窗体传父窗体

Form1为主窗体,Form2为子窗体。

实现:在Form1上添加一个button1,点击button1后显示Form2,再点击Form2的button1 在button1_Click事件中通过this.Owner将Form2的textBox2的值设置给Form1的textBox1(也可以将Form2中的某个值传给Form1,然后在Form1进行后续的处理,将示例代码修改一下即可)

示例代码:

    //Form1上的代码(主窗体)    public partial class Form1 : Form    {        public MainForm()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            //显示Form2            Form2 childForm = new Form2();            childForm.Show();            //定义Form2的“爸爸”为Form1             calForm.Owner = this;                         或者            //Form2 childForm = new Form2();            //childForm.Show(this);        }    }      //Form2上的代码(子窗体)    public partial class Form2 : Form    {        public CalibrationForm()        {            InitializeComponent();        }        private void button_Click(object sender, EventArgs e)        {            MainForm mForm = (MainForm)this.Owner;            //注意 如果textBox1是放在panel1中的 则先找panel1 再找textBox1            ((TextBox)mForm.Controls["textBox1"]).Text = this.textBox2.Text;             //也可直接将控件的属性Modifiers修改为public 然后直接调用            mForm.textBox1.Text = this.textBox2.Text;        }     }

2.父窗体传子窗体

Form1为主窗体,Form2为子窗体。

实现:在Form1上添加一个button1,点击button1后显示Form2,然后点击Form2的button1显示Form1中的某个参数。(用构造函数来实例化Form2窗体,然后把Form1的this指针传进去,这样就可以在Form2中调用Form1的参数(此参数必须是public属性的))

示例代码:

    //Form1上的代码(主窗体)    public partial class Form1 : Form    {        public MainForm()        {            InitializeComponent();        }                public string str = "你好!";        private void button1_Click(object sender, EventArgs e)        {            //实例化子窗体,并将父窗体的指针this传入            Form2 childForm = new Form2(this);            childForm.Show();        }    }      //Form2上的代码(子窗体)    public partial class Form2 : Form    {        public CalibrationForm()        {            InitializeComponent();        }         private Form1 frmMain;        public Form2(Form1 mForm)        {            InitializeComponent();            this.frmMain = mForm;        }         private void button1_Click(object sender,EventArgs e)         {              this.textBox1.Text = mForm.str;           }     }

子窗体与父窗体之间的参数传输方法不止这一种,还可以用委托等,这里只总结了个人认为较为简单的一种方法,如果以后涉及委托会进行补充。

以上就是“C#如何实现不同窗体之间传递参数”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: C#如何实现不同窗体之间传递参数

本文链接: https://www.lsjlt.com/news/350076.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#如何实现不同窗体之间传递参数
    今天小编给大家分享一下C#如何实现不同窗体之间传递参数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。C#不同窗体之间传递参数...
    99+
    2023-07-05
  • C#实现不同窗体之间传递参数
    目录C#不同窗体之间传递参数1.父窗口向子窗口传递参数2.子窗口向父窗口传递参数3.代码说明C#子窗体与父窗体之间的参数传输1.子窗体传父窗体2.父窗体传子窗体总结C#不同窗体之间传...
    99+
    2023-02-26
    C#传递参数 C#不同窗体 C#窗体传递参数
  • java不同类之间怎么传递参数
    在Java中,可以通过以下几种方式在不同类之间传递参数:1. 方法参数传递:在调用一个类的方法时,可以将参数作为方法的参数进行传递。...
    99+
    2023-09-15
    java
  • java不同类之间的参数怎么传递
    在Java中,不同类之间传递参数可以通过以下几种方式实现: 通过方法参数传递:在调用一个类的方法时,可以将参数作为实参传递给该方法...
    99+
    2024-02-29
    java
  • c#跨窗体传递数据怎么实现
    在C#中,可以通过使用委托来实现跨窗体的数据传递。 首先,在发送数据的窗体中定义一个委托类型和事件,用于传递数据: public d...
    99+
    2024-03-02
    c#
  • Vue不同项目之间传递、接收参数问题
    目录1.LocalStroage方式 (不可取)2.Cookie方式 (不推荐)3.参数形式 (时效性)描述一下场景 UC(User-Center)是单独的一个项目,包括Spring...
    99+
    2023-05-17
    vue跨项目传参 vue不同项目传参
  • angular中如何实现控制器之间传递参数
    这篇文章将为大家详细讲解有关angular中如何实现控制器之间传递参数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在angular中,每个controller(控制器)...
    99+
    2024-04-02
  • php方法之间如何传递参数
    本文小编为大家详细介绍“php方法之间如何传递参数”,内容详细,步骤清晰,细节处理妥当,希望这篇“php方法之间如何传递参数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在PHP中, 函数之间传递参数是一件非常普...
    99+
    2023-07-06
  • 如何用vue实现组件间参数传递
    这篇文章主要介绍“如何用vue实现组件间参数传递”,在日常操作中,相信很多人在如何用vue实现组件间参数传递问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用vue实现组件间参数传递”的疑惑有所帮助!接下来...
    99+
    2023-07-04
  • C#开发如何Winform实现窗体间相互传值
    今天小编给大家分享一下C#开发如何Winform实现窗体间相互传值的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、前言我们...
    99+
    2023-06-29
  • C++ thread传递参数怎么实现
    在C++中,可以通过以下几种方式传递参数给线程: 传递参数作为线程函数的参数: #include <iostream>...
    99+
    2024-02-29
    C++
  • python不同类间参数传递的方法是什么
    在Python中,不同类间的参数传递可以通过以下几种方法实现:1. 构造函数:通过在一个类的构造函数中传递参数,然后在另一个类的对象...
    99+
    2023-09-27
    python
  • C++ 函数的参数如何传递?
    在 c++++ 中,参数传递有两种方式:按值传递:创建参数副本,函数修改副本不影响原参数。按引用传递:传递参数引用,函数修改引用会影响原参数。 C++ 函数参数的传递方式 在 C++ ...
    99+
    2024-04-18
    c++ 函数参数
  • Javascript如何在两个窗体之间传值
    本篇内容主要讲解“Javascript如何在两个窗体之间传值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Javascript如何在两个窗体之间传值”吧!如我们新建窗体 FatherPage.h...
    99+
    2023-06-27
  • C#开发Winform实现窗体间相互传值
    目录一、前言二、公共属性三、公共方法四、委托1、定义一个委托2、实例化一个此委托类型的事件3、定义要执行的方法4、将方法绑定到事件5、触发委托一、前言 我们在做Winform窗体程序...
    99+
    2024-04-02
  • Vue之请求如何传递参数
    目录一、get请求1、直接拼接2、params属性二、post请求1、data属性传递2、params属性传递三、常见的 Content-Type 类型1、application/x...
    99+
    2023-05-14
    Vue请求传递参数 Vue请求 Vue传递参数
  • C#线程传递参数实现方法
    这篇文章主要讲解了“C#线程传递参数实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#线程传递参数实现方法”吧!C#线程传递参数的实现是如何进行的呢?那么这里我们使用MyThread...
    99+
    2023-06-17
  • Android 中怎么实现Activity 间传递参数
    这篇文章将为大家详细讲解有关Android 中怎么实现Activity 间传递参数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.传递简单数据在A Activity中findViewByI...
    99+
    2023-05-30
    android activity
  • C#怎么实现按值传递参数
    这篇文章主要讲解了“C#怎么实现按值传递参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#怎么实现按值传递参数”吧!按值传递参数这是参数传递的默认方式。在这种方式下,当调用一个方法时,会...
    99+
    2023-06-17
  • Android中Okhttp3如何实现上传多张图片同时传递参数
    这篇文章给大家分享的是有关Android中Okhttp3如何实现上传多张图片同时传递参数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近做项目,打算换个方法上传图片。Andro...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作