原文地址:http://blog.csdn.net/chazikai24/article/details/5855254
下述代码,实现效果为:运行程序,点击form1的button1,弹出form2,点击form2上的button1,隐藏form1上的button2.
下面更新了实现这个功能更简单的方法
//form1代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication43
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.SetMainFormTopMost += new SetMainFormTopMostHandle(f2_SetMainFormTopMost);//给form2中的委托实例SetMainFormTopMost 注册方法
f2.Show();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
}
void f2_SetMainFormTopMost(bool topmost) //回调函数
{
button2.Visible = false;
}
}
}
//form2代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication43
{
public delegate void SetMainFormTopMostHandle(bool topmost); //定义委托
public partial class Form2 : Form
{
public SetMainFormTopMostHandle SetMainFormTopMost;//定义委托实例
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SetMainFormTopMost(true);//执行委托实例
}
private void Form2_Load(object sender, EventArgs e)
{
}
}
}
更新:
using System;//form1代码
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication45
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 fr2 = new Form2();
fr2.Show(this);
}
}
}
using System;//form2代码
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication45
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form1 fr1 = (Form1)this.Owner;
fr1.button2.Hide();
}
}
}
虽然第二种方法更为简便,但是个人认为委托更为安全,更易控制。