解析C 解析cad图纸
创始人
2024-05-03 21:30:36
0

在写程序时有时会遇到新建一个窗口,填写某些信息后再刷新原窗口。比如在新窗口添加新管理员,点击确定提交后再刷新原始窗口的管理员列表。听起来貌似是很简单,只要再调用一下绑定管理员列表的函数就可以了,但在新窗口调用那个函数是不行的,但是用传递委托的方法可以,代码如下:

C# Winform刷新窗口步骤1

原始窗体:

  1. using System;  
  2.  
  3. using System.Collections.Generic;  
  4.  
  5. using System.ComponentModel;  
  6.  
  7. using System.Data;  
  8.  
  9. using System.Drawing;  
  10.  
  11. using System.Linq;  
  12.  
  13. using System.Text;  
  14.  
  15. using System.Windows.Forms;  
  16.  
  17. using PAT.DataAccess;  
  18.  
  19. using System.Collections;  
  20.  
  21.    
  22.  
  23. namespace PAT.WinForm  
  24.  
  25. {  
  26.  
  27.     public partial class RoleManage : Form  
  28.  
  29. {  
  30.  
  31. public delegate void UpdateComoboxAsyscHandler();//作为异步更新角色列表时用的委托,//***使用空参数列表,且要定义为//public  
  32.  
  33. //更新列表的函数,即上面定义的委托要绑定的函数       
  34.  
  35.           private void UpdateComobox()  
  36.  
  37.         {  
  38.  
  39.             WinFormControlBuilder.Instance.BindRoles(comboBoxRoles);  
  40.  
  41.         }  
  42.  
  43.    
  44.  
  45.         private void buttonAddRole_Click(object sender, EventArgs e)  
  46.  
  47.         {  
  48.  
  49.               //AddRole是添加新角色的窗口,这里把刚写好的委托传进来  
  50.  
  51.             AddRole addRole = new AddRole(new UpdateComoboxAsyscHandler(UpdateComobox));  
  52.  
  53.             addRole.Show();  
  54.  
  55.     }  
  56.  
  57. }  
  58.  

C# Winform刷新窗口步骤2

新窗体:

  1. using System;  
  2.  
  3. using System.Collections.Generic;  
  4.  
  5. using System.ComponentModel;  
  6.  
  7. using System.Data;  
  8.  
  9. using System.Drawing;  
  10.  
  11. using System.Linq;  
  12.  
  13. using System.Text;  
  14.  
  15. using System.Windows.Forms;  
  16.  
  17. using PAT.DataAccess;  
  18.  
  19. using System.Threading;  
  20.  
  21.    
  22.  
  23. namespace PAT.WinForm  
  24.  
  25. {  
  26.  
  27.     public partial class AddRole : Form    {  
  28.  
  29.         public AddRole()  
  30.  
  31.         {  
  32.  
  33.             InitializeComponent();  
  34.  
  35.         }  
  36.  
  37.    
  38.  
  39.         private RoleManage.UpdateComoboxAsyscHandler UpdateComoboxAsyscHandler;  
  40.  
  41.         //写一个新的构造函数,参数是之前写好的委托  
  42.  
  43.         public AddRole(RoleManage.UpdateComoboxAsyscHandler _updateComoboxAsyscHandler)  
  44.  
  45.         {  
  46.  
  47.             InitializeComponent();  
  48.  
  49.             this.UpdateComoboxAsyscHandler = _updateComoboxAsyscHandler;//委托赋值  
  50.  
  51.         }  
  52.  
  53.    
  54.  
  55.         private void buttonSubmit_Click(object sender, EventArgs e)  
  56.  
  57.         {  
  58.  
  59.             //  
  60.  
  61.             //更新数据库操作  
  62.  
  63.             //  
  64.  
  65.             Accunt_Role account_Role = new Accunt_Role();  
  66.  
  67.             account_Role.RoleName = textBoxRoleName.Text;  
  68.  
  69.             patDataContext.Accunt_Roles.InsertOnSubmit(account_Role);  
  70.  
  71.             patDataContext.SubmitChanges();  
  72.  
  73.             UpdateComoboxAsyscHandler();//调用委托,更新原列表  
  74.  
  75.             MessageBox.Show("添加角色成功!");  
  76.  
  77.             this.Dispose();//关闭窗口  
  78.  
  79.         }  
  80.  
  81.     }  
  82.  

 效果示例如下:

C# Winform刷新窗口效果示例

点击确定后,在始窗口列表中显示:

C# Winform刷新窗口列表中显示

这样就可以实现在新窗口添加新角色后,新窗口关闭,同时刷新原始窗口的角色列表。

至此,C# Winform刷新窗口的方法就讨论完了。

【编辑推荐】

  1. C#代码与#函数相互调用问题集锦
  2. 如何使用泛型达到代码重用的目的
  3. 线性链表测试方法简介
  4. 创建一个简单的线性链表
  5. C#事件模型的一个实例

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...