遇到一个网友提问说两个窗体内容同步的问题,这个测试下没有,主要内涵还是委托与异步调用的应用问题
这样处理
:在子窗体中声明一个父窗体的类型变量form1;
在子窗体实例化时添加form1=this;
在父窗体中定义一个更新父窗体内容的public函数
在子窗体中通过委托的形式调用form1中定义的函数具体代码如下
-------------------------窗体一的代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.form1 = this;
form2.Show();
}
public void myupdate(string mystr)
{
this.textBox1.Text = mystr;
}
}
}
----------------------------窗体二的代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form2 : Form
{
public Form1 form1;
public Form2()
{
InitializeComponent();
}
public delegate void update(string txt);//声明委托
private void textBox1_TextChanged(object sender, EventArgs e)
{
string strx = textBox1.Text;
if (!this.InvokeRequired)
{
update updatetxt = new update(form1.myupdate);//委托实例化
IAsyncResult ix = this.BeginInvoke(updatetxt, new object[] { strx });//异步调用
try
{
this.EndInvoke(ix);
}
catch
{ }
}
}
}
分享到:
相关推荐
C#,委托,异步,调用.窗体,通讯,介绍窗体间通讯的一种较好方法
c#利用委托来实现关闭子窗口通知父窗口执行 c#利用委托实现关闭子窗口通知父窗口 c#利用委托关闭子窗口通知父窗口 c#利用委托来实现关闭子窗口通知父窗口执行 c#利用委托实现关闭子窗口通知父窗口 c#利用委托关闭子...
在主窗体耗时方法体内调用,弹出进度窗体。调用4步骤 1.ProgressBarService.CreateBarForm("计划导出", "数据就绪,准备导出数据...", count); //创建进度窗口并写入提示文字 2.ProgressBarService....
winform的一个简单易用异步加载等待效果,调用方式: this.AsyncWaitDo(delegate{ //异步等待操作}, delegate{//回调操作}); this是要进行异步等待的窗体
在加载数据时,如果数据过多,可以弹出一个请稍等的窗体,当数据加载完毕后把这个窗体给关掉,主要采用BackgroundWorker这个类进行操作
在WinForm中,比如一些文件传输和一些费时的操作,如果处理不好就会造成“假死”的情况,为此我们可以采用进度条进行友好提示。 BackgroundWorker类是.net 2.0里新增加的一个类,对于需要长时间操作而不需要用户长...
快速阅读 如何在winform程序中,让界面不再卡死。 关于委托和AsyncCallback的使用。 界面卡死的原因是因为耗时任务的计算...定义一个委托实现子线程更新主线程 public delegate void UpdateText(string message); pu
WebBrowser控件-弹出新窗体和关闭窗口.txt WebBrowser控件的简单应用2.txt 多线程为基于.NET的应用程序实现响应迅速的用户.txt 浅述WinForm多线程编程与Control.Invoke的应用.txt 微软.Net开发中的多线程编程总结....
22.6.3 Microsoft ASP.NET Web窗体和XML Web服务应用程序 22.6.4 Microsoft SQL Server 22.6.5 更多的用法只局限于你自己的想象力 22.7 高级宿主控制 22.7.1 使用托管代码管理CLR 22.7.2 编写健壮的宿主应用...
鉴于MySQL数据库的流行与强大,决定多学习...同时实现了数据库查询,BindingSource绑定控件、BindingNavigator导航控件绑定,批量数据使用BackgroundWorking异步导入功能,及进度条动态显示数据库批量操作进度等功能。
共22章,全面详细地解说了C#的技术要点,包括C#语言基础、C#的面向对象特征、异常处理、委托与事件、集合、泛型、字符串与正则表达式、特性、反射、程序集与版本控制、.NET框架的内存管理、多线程、Windows窗体、GDI...
22.6.3 Microsoft ASP.NET Web窗体和XML Web服务应用程序 22.6.4 Microsoft SQL Server 22.6.5 更多的用法只局限于你自己的想象力 22.7 高级宿主控制 22.7.1 使用托管代码管理CLR 22.7.2 编写健壮的宿主应用...
实例52 在C#中快速调用Windows API 实例53 摄氏温度与华氏温度间相互转换(1) 实例54 摄氏温度与华氏温度间相互转换(2) 实例55 使用FileSystemWatcher组件监视Web服务器 实例56 由颜色名字产生对应颜色 实例...