在两个Windows窗体之间切换

在两个Windows窗体之间切换

我有两种形式。首先,我有一个按钮将我转发到第二个表单,并使用this.Hide();隐藏第一个表单。

看起来像这样:

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


它也占据它的位置,但不是它。
在第二种形式中,我有一个按钮,在单击“返回到隐藏的形式并使其再次可见”后,应该会找到一个按钮,但是我找不到如何访问其适当性的解决方案。
我有一些想法,但真的不知道如何标记它。任何帮助表示赞赏。

最佳答案

您需要将第一种形式的引用传递给第二种形式,以便调用第一种形式的任何方法。这是一个简单的示例,将进行演示。

下面是我的第一堂课

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();
            }
        }
    }
}

关于c# - C#在两个Windows窗体之间切换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34694684/

10-12 06:18