c#弹出子窗体时隐藏父窗体控件 子窗体关闭时怎么让父窗体控件显示出来

2024-12-02 07:42:58
推荐回答(2个)
回答1:

//父窗体
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //new一个子窗体,new时,传入被隐藏的控件
            Form2 f = new Form2(this.button1);
            //显示子窗体
            f.Show();
            //隐藏控件(按钮)
            this.button1.Visible = false;
        }
    }
 // 子窗体
 public partial class Form2 : Form
    {
        //私有变量,保存传入的父窗体控件
        private Button b;
        public Form2()
        {
            InitializeComponent();
        }
        //构造函数
        public Form2(Button b)
        {
            InitializeComponent();
            this.b = b;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //此时,b指向父窗体中的button1 Visible设为True即父窗体中的button1可见
            b.Visible = true;
            //关闭本身
            this.Close();
        }
    }

回答2:

主窗体上写
DialogResult dialogResult = frm.ShowDialog();
if (DialogResult.OK == dialogResult)
{
/ /这里可以写子窗体返回的一些值
}
子窗体
this.DialogResult.OK;