asp.net子窗体刷新父窗体(委托)方法

作者:袖梨 2022-06-25

子窗体 ff=new 子窗体

代码如下 复制代码
ff.showdialog();
if (子窗体.DialogResult==DialogResult.Ok)
{
datashow();
}

这个方法写在父窗体的button_click事件中就可以啦

还有一种方法就是利用了asp.net中的委托(通过模拟,ASP.NET 能够在一个经过身份验证和授权的用户上下文中执行代码和访问资源,但是只能在运行 ASP.NET 的服务器上进行。若要代表所模拟的用户访问其他计算机上的资源,需要身份验证委托(简称委托)。可以将委托看作是一种更强大的模拟形式,因为它通过网络启用模拟)来做了。下面我们来看个实例

先来看看委托简单实

代码如下 复制代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace TestMouseMove
{
public delegate void SetVisiableHandler();

public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form3 frm = new Form3(new SetVisiableHandler(SetVisiable));
frm.Show();
}

private void SetVisiable()
{
SetVisiable(this.label1, !this.label1.Visible);
}

private void SetVisiable(Control control, bool visiable)
{
if (this.Controls.Contains(control))
{
control.Visible = visiable;
}
}

}
}

form3

代码如下 复制代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace TestMouseMove
{
public partial class Form3 : Form
{
private SetVisiableHandler m_setVisible;

public Form3(SetVisiableHandler setvisible)
{
InitializeComponent();
this.m_setVisible = setvisible;
}
private void btnVisible_Click(object sender, EventArgs e)
{
if (this.m_setVisible != null)
{
this.m_setVisible();
}
}

}
}

关于委托
1.命名空间定义一个委托 delegate void CustomEventHandler()

2.用户控件 定义事件 public event CustomEventHandler CutomEvent(); 然后再合适的地方调用 CutomEvent();

3.别人在页面里注册他的方法: UserControlInstance.CustomEvent(CustomMethod); CustomMethod为他自己的方法(重新绑定数据之类。),签名要和委托一致

  (注:注册方法每次pageload 都要执行)

如果你不了解委托可以参考

相关文章

精彩推荐