常用的Winform窗体传值有两种方式. 1.更改Form.designer.cs文件,将控件的设为Public,供子窗体访问. 在designer.cs文件的最后,找到你的控件声明. private System.Windows.Forms.TextBox textBox1; 更改Private为public,保存即可. 2.利用委托进行窗体传值. 父窗体:Form1 子窗体:Form2 点击Form1,弹出Form2,点击按钮返回值给Form1 首先在Form2中定义委托和事件: //声明委…
首先在Form2中定义委托和事件: //声明委托 和 事件 public delegate void TransfDelegate(String value); public partial class Form2 : Form { public Form2() { InitializeComponent(); } public event TransfDelegate TransfEvent; private void button1_Click(object sender, EventArg…
今天在项目上遇到了这个问题,其实只是window.returnValue的简单应用,不是asp.net的专属内容.作为积累,记录一个简单的实现模型. 图1  用到的文件 从图1中我们可以看到,只用到了两个页面,其中Default.aspx作为父页面,Default2.aspx作为子页面被弹出.Default.aspx页面上有两个TextBox一个Button,代码如下: 1 <%@ Page Language="C#" AutoEventWireup="true&quo…
前台:在winform窗体Form1放入pictureBox1 后台代码: namespace 点击小图变成大图 { public delegate void ClickDelegateHander(string Url); public partial class Form1 : Form { public event ClickDelegateHander ClickEvent; public Form1() { InitializeComponent(); } private void p…
情景展示: 父窗体Form1,左边是按钮,右边是panel(放置子窗体) 父窗体点击按钮,在panel显示第一个子窗体AA, AA有个按钮,点击按钮,是第二个子窗体ZZ, 怎样将AA的子窗体ZZ也显示在父窗体Form1的panel里: 1.父窗体Form1的按钮点击事件 panel1.Controls.Clear(); AA s = new AA(this); s.TopLevel = false; s.Dock = DockStyle.Fill; s.FormBorderStyle = For…
父窗体与子窗体各自的代码如下: 1.  父窗体的代码: void FartherWindow::addactions() { SubWindow subwindow(this); // 把父窗体本身this当成参数传到子窗体 subwindow.clearWindow(); // clearWindow()是子窗体的public方法 subwindow.exec(); } 2.  子窗体的代码: // closeEvent()是子窗体按下关闭按钮时触发的事件,我在这里重写了它 void SubW…
居中显示用到了moveTO()方法: 关闭弹出窗时刷新父窗体用到了window.opener方法: 父窗体代码例如以下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="弹出窗体.aspx.cs" Inherits="弹出窗体" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transi…
父窗体:Form1    ,有个 textbox1.text ,有个button1 子窗体:Form2  ,有个 textbox1.text ,有个button1 修改Form1 的textbox1.text  ,点击Form1的 button1,弹出Form2,点击Form2 的button ,结果:Form2的 textbox1.text 的值为  Form1的textbox1.text ,修改下 Form1的textbox1.text ,再点Form2 的button  ,Form2的 t…
窗体间传值 今天得空,刚好看到网上好多人再找winform窗体间传值的问题,由于昨天项目的优化的感觉不错,就写了个C# winform窗体间传值的demo,希望能给需要的人的带来帮助: 工程的源代码地址:https://github.com/yes-or-no/WinFormTransValueDemoByDelOrEvent.git C#winform窗体间传值,三种方法示例,注释详细.使用方法:使用vs2013打开编译运行即可: 工程中总共介绍了三种方法:###方法1:通过保存对象的引用调用…
前段时间学习委托,感觉很模糊的样子,也做过许多实例,但是项目中一直没有用到,今天在项目中遇到一个很简单的例子,现在拿出来,做一个简单的记录. 要求:将弹出框里勾选的内容返回到主面板上. 工具:委托. 效果图:(由于是根据项目提取出来的,所以里面的界面有点文字有点奇怪) 主窗体: 子窗体:(点击浏览之后弹出的对话框) 勾选几项之后,点击确定,主窗体显示: 实现过程: 这里主要是用到委托实现,所以主要描述一下委托在这里的应用. 我们要在主窗体(这里的子父窗体都是自己假想)中获取子窗体中的元素,所以首…
前段时间学习委托,感觉很模糊的样子,也做过许多实例,但是项目中一直没有用到,今天在项目中遇到一个很简单的例子,现在拿出来,做一个简单的记录. 要求:将弹出框里勾选的内容返回到主面板上. 工具:委托. 效果图:(由于是根据项目提取出来的,所以里面的界面有点文字有点奇怪) 主窗体: 子窗体:(点击浏览之后弹出的对话框) 勾选几项之后,点击确定,主窗体显示: 实现过程: 这里主要是用到委托实现,所以主要描述一下委托在这里的应用. 我们要在主窗体(这里的子父窗体都是自己假想)中获取子窗体中的元素,所以首…
C# WinForm 父窗体 子窗体 传值 本次示例效果如下:Form1为父窗体(包含textBox1.button1)Form2为子窗体(包含textBox2.button2) 父窗体给子窗体传值==================1.点击Form1的button1 打开Form2  父窗体给子窗体传值 可以调用重载子窗体的构造函数 直接传入相关数值 public partial class Form1 : Form    {        public Form1()        {   …
简述:最近在做C#和HALCON编程,要用到单例的参数由子窗体改变父窗体的值.此例为简化版 1,点击系统设置 2,弹出子窗体,在其输入修改参数后点修改按钮 3,点击确定按钮后,关闭子窗体后,主窗体textbox值改变 4,单例程序如下: public class Student { //创建单例类,内部静态类方法 private Student() { }//私有构造函数 class Nested { internal static readonly Student instance = new…
Winform程序有很多传值的方法,抱着学习的态度.利用委托注册事件的方法,给窗体统一添加事件: 首先定义一个Frm_Base: namespace 任意 { public partial class Frm_base : Form { public delegate void InitHandler(BaseDTO dto); //声明初期化窗体委托 public event InitHandler InitEvent; //声明初期化窗体事件 #region 由子窗体调用的事件 public…
原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们So Easy ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 一.窗体展示 首先我们看到是一个父窗体和…
调用窗体(父):Form1,被调用窗体(子):Form2方法1:   所有权法//Form1://需要有一个公共的刷新方法public   void   Refresh_Method(){//...}//在调用Form2时,要把Form2的所有者设为Form1Form2   f2   =   new   Form2()   ;f2.Owner   =   this;f2.ShowDialog()   ;//Form2://在需要对其调用者(父)刷新时Form1   f1   ;f1   =  …
winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下: 一 . 所有权法 父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始化方法.如: public void reLoad_method() { //窗体数据初始化方法,fuForm_Load中的全部操作,调用此方法可实现数据的刷新 } fuForm中打开ziForm时需要设置所有者,就是ziForm的所有者是fuForm,代码如下: ziForm _ziForm =…
父窗框mainForm;子窗体childForm,利用事件进行传值 在子窗体中的操作: public event EventHandler accept;public string value; private void btnStart_Click(object sender, EventArgs e) {    value=txtName.text;    if(accept!=null)    {      accept(this, EventArgs.Empty);//当事件触发时,传递…
原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们So Easy ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 一.窗体展示 首先我们看到是一个父窗体,…
最近开始了一个winform项目,原先一直都是web项目.遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操作区域的效果.中间区域要想控制左侧导航或者顶部导航都是困难的,因为这时没有激活左侧窗体,操作顶部相对容易,因为顶部是父窗体,子窗体操作父窗体的例子很多,百度一下.我之前也写过一篇:winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体. 同样是子窗体相互操作起来挺困难,可以通过设…
在父窗体里定义委托 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<stri…
先实例化子窗体jobForm,然后让 jobForm.TransfEvent += job_TransfEvent;显示子窗体 if (jobForm.DialogResult != DialogResult.OK) return; thisjob.JobName = jobNameBx.Text; } 判断子窗体是否点击确定按钮,不是则返回,是则进行传值 子窗体把文件名name传给父窗体. this.DialogResult = DialogResult.OK; this.Close(); 点…
方法1:所有权法 父窗体:Form1    子窗体:Form2 //Form1:窗体代码 //需要有一个公共的刷新方法 public void Refresh_Method() { //... } //在调用Form2时,要把Form2的所有者设为Form1 Form2 f2 = new Form2() ; f2.Owner = this; f2.ShowDialog() ; //Form2:窗体代码 //在需要对其调用者(父)刷新时 Form1 f1 ; f1 = (Form1)this.Ow…
窗体间的传值,最好使用委托方式传值,开始之前,我们先来说一下委托与事件的关系. 委托:是一个类. 事件:是委托类型的一个特殊实例,只能在类的内部触发执行. 首先创建2个窗体,这里我们以form1为发送窗体,form2为接收窗体 form1窗体 form2窗体 方式一(最简单的方式) form1窗体代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; us…
两种方法实现: 第一种,传时间变量,主窗体要不停的刷新数据,占用资源比较大. 第二种,用this,感觉比较好用,建议用这种方法. 举例: 主窗体命名:FormA; 子窗体命名:FormB; 数据绑定方法:DataBind(); 第一种具体实现如下: FormA: 拉一个Timer控件,例: 1>属性设置: 名字:   timer1 Enable:   ture Interval:   1000 2>加载事件 tick:timer1_Tick 3>写代码 (1)定义一个公共静态变量: pu…
今天的工作中突然用到这个了,不过以前没有接触过呢!不过,在有经验的同事的帮助下,这个问题也很快解决了.具体可以分为以下几种方式: 1.在父窗体中构造子窗体对象时,将父窗体传递过去: 如:FrmSub frm=new FrmSub(this);//this代表父窗体 2.将父窗体中要访问的变量和方法修改为public 3.在子窗体类中定义一个父窗体的全局变量: 如:private dynamic m_parentContainer;//使用dynamic可以动态的识别该变量的类型 4.添加引用Mi…
建一个接口 比如 iMainForm接口内声明个方法 比如 Refresh()主窗体 实现这个接口 主窗体打开子窗体时这样写 子窗体.Owner = this;子窗体.ShowDialog(); ---------------------------------子窗体内你想啥时候刷新都行(this.Owner as iMainForm).Refresh(); ---------------------------------以上方法非常泛用 http://bbs.csdn.net/topics/…
要求:为父窗体添加一个类似于加载等待的功能,当窗体点击备份时弹出且覆盖掉窗体 问题一产生:当为弹窗添加控件时,form.show();导致窗体卡死,控件变得透明化; 问题一分析:当窗体show();之后socket方式的传输方式,使线程卡死了,导致弹窗窗体为加载完全就卡死了; 问题一解决:将备份的代码重新开启一个线程进行操作,使主窗体的代码不会卡死 注意:可能会产生跨线程访问问题,注意善用this.invoke(new Action());来解决问题; 问题二:弹窗窗体会被覆盖导致主窗体可能被操…
解决子窗体放大后,子窗体的图标占用主窗体的菜单栏的问题. C#子窗体最大化时, 那个图标跑到主窗体的前面去了, 造成界面不统一也不美观. 所以需要进行处理, 只要有主窗体的菜单ItemAdded事件中加进下面代码: if (e.Item.Text.Length == 0 || e.Item.Text == "还原(&R)" || e.Item.Text == "最小化(&N)") {     e.Item.Visible = false;} 运行再查…
本人比较懒,直接从网上转载了一篇比较合适的文章,只是文章格式有点乱,地址是 http://aspnet.blog.163.com/blog/static/17515510920121126104433237/ 调用窗体(父):Form1,被调用窗体(子):Form2 方法1:   所有权法//Form1://需要有一个公共的刷新方法public   void   Refresh_Method(){//...}//在调用Form2时,要把Form2的所有者设为Form1Form2   f2   =…