C#在两个窗口窗体之间切换

本文关键字:窗体 窗口 之间 两个 | 更新日期: 2023-09-27 18:29:40

我有两种形式。在第一个表格中,我有一个按钮将我转发到第二个表格,并用这个隐藏第一个表格。隐藏();

它看起来像这样:

        Form1Streamer f1 = new Form1Streamer();
        f1.Left = this.Left;
        f1.Top = this.Top;
        f1.Size = this.Size;
        f1.Show();
        this.Hide();            
        checkBox1.Checked = false;

它也采取了自己的立场,但这与它无关。在第二个表单中,我有一个按钮,在单击"返回到隐藏的表单并使其再次可见"后,该按钮应该是可见的,但我找不到如何访问它的正确性的解决方案。我有一些想法,但真的不知道如何标记。任何帮助都很感激。

C#在两个窗口窗体之间切换

您需要将第一个表单的引用传递给第二个

下面是我的第一个

using System;
using System.Windows.Forms;
namespace Test_Desktop
{
    public partial class FirstForm : Form
    {
        public FirstForm()
        {
            InitializeComponent();
        }
        private void showSecondFormButton_Click(object sender, EventArgs e)
        {
            SecondForm secondform = new SecondForm(this); //Passing the reference of current form i.e. first form
            secondform.Show();
            this.Hide();       
        }
    }
}

这是我的二年级

using System;
using System.Windows.Forms;
namespace Test_Desktop
{
    public partial class SecondForm : Form
    {
        private FirstForm firstForm = null;
        public SecondForm()
        {
            InitializeComponent();
        }
        ///
        /// Overriding constructor
        ///
        public SecondForm(FirstForm firstForm)
        {
            InitializeComponent();
            this.firstForm = firstForm;
        }
        private void showFirstFormButton_Click(object sender, EventArgs e)
        {
            if(firstForm!=null)
            {
                firstForm.Show();
                //
                //Do some processing
                //
                this.Dispose(); 
            }
        }
    }
}

您需要在第二个表单中引用隐藏表单。为此,请像下面的一样更改第二个窗体的构造函数

public Form1Streamer(Form firstform)
{
   InitilizeComponent();
   this.firstForm=firstform;
}
private FirstForm firstForm;

现在,您可以使用参考firstForm 显示第一个表单

在第一个表单中,您需要更改此代码

Form1Streamer f1 = new Form1Streamer();

Form1Streamer f1 = new Form1Streamer(this);