FORMmain 工具栏 一刷新按钮
现有3个子窗体 FORM1 FORM2 FORM3 分别有 dataGridView1 dataGridView2 dataGridView3
当子窗体为 FORM1 时 点刷新 刷新dataGridView1
当 FORM2 时 刷新 dataGridView2
如何实现!!
重载 怎么实现的
给点步骤
现有3个子窗体 FORM1 FORM2 FORM3 分别有 dataGridView1 dataGridView2 dataGridView3
当子窗体为 FORM1 时 点刷新 刷新dataGridView1
当 FORM2 时 刷新 dataGridView2
如何实现!!
重载 怎么实现的
给点步骤
{
public void Refrash()
{
//.....
}
}
FormChild form1,form2,form3,formCurrent;
form1 = new FormChild();
form2 = new FormChild();
form3 = new FormChild();// default
formCurrent = form1;
// some event
formCurrent.Refrash();
老大的话总是这么晦涩定义一个接口 interface IForm 里面有一方法 Refresh()FORM1 FORM2 FORM3 实现此接口 和 Refresh()方法这就有同名方法了吧。在主窗体里 获得当前子窗体,强制转换为 IForm 调用Refresh()方法实现刷新不知道是不是这个意思
{
//获取当前活动子窗体
Form activeChild = this.ActiveMdiChild;
//子窗体刷新界面
activeChild.Refresh();
}
在父窗体中private form1 f1;
private form2 f2;
private form3 f3;public formmain()
{
form1=null;
form2=null;
form3=null;
}
//我不知道你是如何弹出子窗体的,假设以按钮单击的形式弹出。
private void button_Click(object sender EventArgs e)
{
form1 fm1=new form1(this);
fm1.show();
}
//设置当前的form1的值
public void Set_form1(form1 ptf1)
{
f1=ptf1;
}
//然后进行你的判断在form1子窗体中private formmain fm;public form1(formmain ptfm)
{
fm=ptfm;
}private form1_Load(object sender EventArgs e)
{
fm.Set_form1(this);
}private form1_Closed(object sender EventArgs e)
{
fm.Set_form1(null);
}通过判断f1的值是否为null来判断当前子窗体是否为form1窗体,form2,form3用同样的方法。
private void button1_Click(object sender, EventArgs e)
{ Form frmActive = this.ActiveMdiChild;
if (frmActive != null)
{
MessageBox.Show(frmActive.Name + "刷新");
//这里进行你的刷新操作
}
else
{
MessageBox.Show("没有活动窗体");
}
}
//判断某窗体是否存在
public bool IsExistForm(string strformname)
{
bool IsExist = false;
foreach (Form frm in Application.OpenForms)
{
if (frm.Name == strformname)
{
frm.Activate();
IsExist = true;
return true;
} }
return false;
}
form f=this.ActiveMdiChild;
if(f is form1)
{}
else if( f is form2)
{}
else
{}