winform跨界面进行的操作

窗体之间除了以传递参数的方式进行互通外,还可以用委托

例子:

form1 点击按钮,出现窗体2

 private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            Action<string> f2CallBack = x =>
              {
                  label1.Text = x;//函数体。要进行的操作
              };//(3)设置与窗体2相同签名的委托
            f2.CallBack = f2CallBack;//(4)对声明委托的窗体进行委托绑定
            f2.Show();

        }
     

form2 点击按钮,将窗体2输入的内容传递到窗体1,进行实时变更。

       //(1)声明委托
        public Action<string> CallBack;
        private void button1_Click(object sender, EventArgs e)
        {
            //(2)传递参数
            this.CallBack?.Invoke(textBox1.Text);//传递变量值
        }

完!

时间: 2024-10-23 21:41:04

winform跨界面进行的操作的相关文章

Winform跨窗体操作控件(使用委托)

Winform跨窗体操作控件是winform开发中很常见的形式,最常见且简单有效的方式便是使用委托的方式来进行操作,下面我将通过一个小实例来说明如何使用委托跨窗体实现控件操作. 实例介绍:两个窗体,Form1按钮打开Form2,然后在Form2的TextBox输入值在Form1的TextBox中显示出来. 一.项目结构 Form1窗体设计: Form2窗体设计: 二.代码实现 在Form2的代码中声明一个委托(写在Form2类外)-> public delegate void ChangeFor

Winform跨线程操作GUI

一直以来都是做Web开发,虽然乱七八糟什么都接触一些,但几乎不怎么接触Winform, WPF这些,也很少接触多线程开发. 在公司有时候没有事儿做,但又不能随意上网浏览新闻什么的,会被IT监控,看多了总归不好.QQ也被禁用.大家用的都是OC.OC的聊天记录也会被上传到服务器.所以闲着的时候就开始决定做一个Winform的聊天室.初步包括 登陆,群聊,私聊,查看在线列表 这些基本功能. 今天遇到一个问题,上网查了一下,答案虽然正确,但让初步接触的我看的稀里糊涂的,大部分都是复制粘贴,甚至还出现了中

C# Winform 跨线程更新UI控件常用方法总结(转)

出处:http://www.tuicool.com/articles/FNzURb 概述 C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件的线程访问它”的异常.处理跨线程更新Winform UI控件常用的方法有4种: 1. 通过UI线程的SynchronizationContext的Post/Send方法更新: 2. 通过UI控件的Invoke/BegainInvoke方法更新: 3. 通过BackgroundWorker取代Thre

C# Winform 跨线程更新UI控件常用方法汇总

C# Winform 跨线程更新UI控件常用方法汇总 概述 C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件的线程访问它”的异常.处理跨线程更新Winform UI控件常用的方法有4种:1. 通过UI线程的SynchronizationContext的Post/Send方法更新:2. 通过UI控件的Invoke/BeginInvoke方法更新: 3. 通过BackgroundWorker取代Thread执行异步操作:4. 通过设置窗体

WinForm跨线程访问控件异常

WinForm跨线程访问控件异常 最近做了个WinForm的小项目,遇到个简单的问题记录下.需求:点击"下载",显示正在下载,下载完后更新状态为"ready"(要求用多线程,避免前台卡死). 做法 新建一个线程,在新线程中下在更新控件状态,报异常跨线程程访问控件(当然可以通过关闭跨线程访问控件检验解决,不鼓励这么做).应该C#5.0版本添加的任务Task异步,这里用异步解决. Code 新建WinForm 项目,Form1添加控件如图 后台代码 private vo

Winform开发框架里面使用事务操作的原理及介绍

在很多情况下,事务是个很有用的东西,可以把一系列的操作组合成一个原子粒度的操作,一旦组合中某个地方出错,可以整个干净的进行滚回,不会留下脏数据:除此之外,事务还能提高批量操作的效率,如在本地SQLite数据库里面,批量插入1万条数据,那么使用事务和没有使用事务,速度上至少差别几十到上百倍的差异.既然事务有完整性和速度性的差异,因此,基于上述原因,我们在很多情况下最好使用事务进行操作.本文主要介绍在开发框架中如何整合事务的操作,并介绍在各个分层中的事务使用案例. 由于我介绍的相关框架,主要是采用了

C#使用IrisSkin2.dll美化WinForm程序界面

一.添加控件IrisSkin2.dll. 方法:         1.右键“工具箱”.“添加选项卡”,取名“皮肤”.         2.右键“皮肤”,“选择项”弹出对话框        3.点击“浏览“,找到IrisSkin2.dll,,next,next,确定.        4.在皮肤里会出现.        5.把SkinEngine拖到设计界面,会出现在下面. 二,把皮肤文件中以ssk为后缀名的文件(如OneGreen.ssk)放在bin文件夹的debug文件夹里. 三,添加代码.  

WinForm 清空界面控件值的小技巧

原文:WinForm 清空界面控件值的小技巧 在WinForm里面有时候需要清空自己输入内容或是选择的选项,以便重新操作流程,那么一般你是怎么清空界面各个控件值的呢?如果窗体里面控件,尤其是TextBox控件比较多的时候,代码里面是不是要设置每个控件的Text属性值为空呢?下面我用这个例子,来探讨下清空界面控件值的小技巧.而且还能复用.不必每个窗体都做这些枯燥.无聊的工作. 一般的做法是在清除控件的事件里面添加下面这样的代码: 代码 private void btnClear_Click(obj

QQ界面及简单操作实现

主要功能: 1.实现QQ好友界面: 2.点击QQ好友图标,可以打开对应的聊天对话框: 说明:聊天对话框的界面即为上次所描述的UDP的实现界面,略有改动: 整体程序操作分析: 1.qq好友界面作为主操作界面,从数据类中添加好友头像,好友名字等信息,点击主操作界面上的好友,能够打开聊天对话框类: 2.添加好友头像,好友名字等信息的行为是相同的,建立一个新的类,只需要留出接口即可: 3.聊天对话框类中,好友信息不一致以外,聊天的连接是一致的,同样可以留出接口,建立新的类: qq好友界面: 1.目前分组