我做数据库备份,备份前,先show出一个form,form上有一个label,label的文字是:“正在备份,请等待……”,点击备份按钮时,那个form倒是出来了,但label上的文字却显示不出来,请各位大虾帮帮忙!
解决方案 »
- 自定义文件格式的问题
- datagridview 列排序
- 网站开发有没有必要用接口?
- 请教如何在datagrid中实现“层”操作
- 我用C#写的服务,怎么调用一个另外C#应用程序?解决的全分。
- 如何使用不同工程中的dll??????????
- 如何判断上传的路径是不是图片(gif\jpg)? ---C#
- winform 无边框窗体内toppanel midpanel bottompanel 填充,怎么拖动改变窗体大小
- 又是datagridview 的问题
- 如果用C# WINFORM开发一个ERP项目 用什么技术或者框架做比较好
- 问一个关于label格式化显示list的每一个item的问题
- 读ini文件出错,很奇怪,如果把段名和健名故意写错不报错
CON-如何在子窗体(被调用者)中实现对其父窗体(调用者)的刷新呢?
网络上有几种方法,先总结如下:
调用窗体(父):Form1,被调用窗体(子):Form2
方法1: 所有权法
//Form1:
//需要有一个公共的刷新方法
public void Refresh_Method()
{
//...
}
//在调用Form2时,要把Form2的所有者设为Form1
Form2 f2 = new Form2() ;
f2.Owner = this;
f2.ShowDialog() ;
//Form2:
//在需要对其调用者(父)刷新时
Form1 f1 ;
f1 = (Form1)this.Owner;
f1.Refresh_Method() ;
方法2:自身传递法
//Form1:
//需要有一个公共的刷新方法
public void Refresh_Method()
{
//...
}
Form2 f2 = new Form2() ;
f2.ShowDialog(this) ;
//Form2:
private Form1 p_f1;
public Form2(Form1 f1)
{
InitializeComponent();
p_f1 = f1;
}
//刷新时
p_f1.Refresh_Method() ;
方法3:属性法
//Form1:
//需要有一个公共的刷新方法
public void Refresh_Method()
{
//...
}
//调用时
Form2 f2 = new Form2() ;
f2.P_F1 = this;
f2.Show() ;//Form2:
private Form1 p_f1;
public Form1 P_F1
{
get{return p_f1;}
set{p_f1 = value;}
}
//刷新时
p_f1.Refresh_Method() ;
方法4:委托法
//声明一个委托
public delegate void DisplayUpdate();
//Form1:
//需要有一个公共的刷新方法
public void Refresh_Method()
{
//...
}
//调用时
Form2 f2 = new Form2() ;
f2.ShowUpdate += new DisplayUpdate(Refresh_Method) ;
f2.Show() ;
//Form2:
//声明事件
public event DisplayUpdate ShowUpdate;
//刷新时,放在需要执行刷新的事件里
ShowUpdate();
麻烦点用多线程或委托来实现!