解析C# Winform刷新窗口
在寫(xiě)程序時(shí)有時(shí)會(huì)遇到新建一個(gè)窗口,填寫(xiě)某些信息后再刷新原窗口。比如在新窗口添加新管理員,點(diǎn)擊確定提交后再刷新原始窗口的管理員列表。聽(tīng)起來(lái)貌似是很簡(jiǎn)單,只要再調(diào)用一下綁定管理員列表的函數(shù)就可以了,但在新窗口調(diào)用那個(gè)函數(shù)是不行的,但是用傳遞委托的方法可以,代碼如下:
C# Winform刷新窗口步驟1
原始窗體:
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using PAT.DataAccess;
- using System.Collections;
- namespace PAT.WinForm
- {
- public partial class RoleManage : Form
- {
- public delegate void UpdateComoboxAsyscHandler();//作為異步更新角色列表時(shí)用的委托,//***使用空參數(shù)列表,且要定義為//public
- //更新列表的函數(shù),即上面定義的委托要綁定的函數(shù)
- private void UpdateComobox()
- {
- WinFormControlBuilder.Instance.BindRoles(comboBoxRoles);
- }
- private void buttonAddRole_Click(object sender, EventArgs e)
- {
- //AddRole是添加新角色的窗口,這里把剛寫(xiě)好的委托傳進(jìn)來(lái)
- AddRole addRole = new AddRole(new UpdateComoboxAsyscHandler(UpdateComobox));
- addRole.Show();
- }
- }
- }
C# Winform刷新窗口步驟2
新窗體:
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using PAT.DataAccess;
- using System.Threading;
- namespace PAT.WinForm
- {
- public partial class AddRole : Form {
- public AddRole()
- {
- InitializeComponent();
- }
- private RoleManage.UpdateComoboxAsyscHandler UpdateComoboxAsyscHandler;
- //寫(xiě)一個(gè)新的構(gòu)造函數(shù),參數(shù)是之前寫(xiě)好的委托
- public AddRole(RoleManage.UpdateComoboxAsyscHandler _updateComoboxAsyscHandler)
- {
- InitializeComponent();
- this.UpdateComoboxAsyscHandler = _updateComoboxAsyscHandler;//委托賦值
- }
- private void buttonSubmit_Click(object sender, EventArgs e)
- {
- //
- //更新數(shù)據(jù)庫(kù)操作
- //
- Accunt_Role account_Role = new Accunt_Role();
- account_Role.RoleName = textBoxRoleName.Text;
- patDataContext.Accunt_Roles.InsertOnSubmit(account_Role);
- patDataContext.SubmitChanges();
- UpdateComoboxAsyscHandler();//調(diào)用委托,更新原列表
- MessageBox.Show("添加角色成功!");
- this.Dispose();//關(guān)閉窗口
- }
- }
- }
效果示例如下:
點(diǎn)擊確定后,在始窗口列表中顯示:
這樣就可以實(shí)現(xiàn)在新窗口添加新角色后,新窗口關(guān)閉,同時(shí)刷新原始窗口的角色列表。
至此,C# Winform刷新窗口的方法就討論完了。
【編輯推薦】