Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何连接两个不同的windows窗体并保持两者都打开_C#_Winforms - Fatal编程技术网

C# 如何连接两个不同的windows窗体并保持两者都打开

C# 如何连接两个不同的windows窗体并保持两者都打开,c#,winforms,C#,Winforms,我开发了一个包含两个表单的桌面应用程序。第二个表单在单击第一个表单时打开。现在打开第二个表单后,我想在桌面上同时移动两个表单。 而且形式的位置也应该改变。意味着如果第二个表单在左侧打开,并且我在到达最左侧边界后将两个表单移动到屏幕左侧,则第二个表单应在第一个表单的右侧打开,反之亦然。 现在,我可以根据位置在第一个窗体的左侧或右侧打开第二个窗体。(如果第一个窗体在左侧,则第二个窗体将在右侧打开,反之亦然) 如何做到这一点? 提前谢谢 将属性StartPosition更改为手动。然后可以使用设置窗体

我开发了一个包含两个表单的桌面应用程序。第二个表单在单击第一个表单时打开。现在打开第二个表单后,我想在桌面上同时移动两个表单。 而且形式的位置也应该改变。意味着如果第二个表单在左侧打开,并且我在到达最左侧边界后将两个表单移动到屏幕左侧,则第二个表单应在第一个表单的右侧打开,反之亦然。 现在,我可以根据位置在第一个窗体的左侧或右侧打开第二个窗体。(如果第一个窗体在左侧,则第二个窗体将在右侧打开,反之亦然) 如何做到这一点?
提前谢谢

将属性
StartPosition
更改为手动。然后可以使用设置窗体的位置

this.Location = new Point(any x coordinate, any y coordinate);
您还可以使用
Left
子属性设置坐标

this.Left = 300;

这可能不是你问题的直接答案,但你可以根据自己的需要使用它。此代码显示表单之间的耦合。 考虑第一种形式,当您想显示第二种形式

 public partial class Form1 : Form
    {
 Form2 frm;
    public Form1()
    {
        InitializeComponent();
        frm = new Form2(this);
    }

    private void button1_Click(object sender, EventArgs e)//when you click button1 on form1 it shows form2
    {

        this.Hide();
        frm.Show();
    }
public partial class Form2 : Form
    {
        Form1 frm;
        public Form2(Form1 fr)
        {
            InitializeComponent();
            frm = fr;
        }

        private void button1_Click(object sender, EventArgs e)//when you click button1 on form2 it shows form1
        {
            this.Hide();
            frm.Show();

        }

       }
    }
现在是第二种形式

 public partial class Form1 : Form
    {
 Form2 frm;
    public Form1()
    {
        InitializeComponent();
        frm = new Form2(this);
    }

    private void button1_Click(object sender, EventArgs e)//when you click button1 on form1 it shows form2
    {

        this.Hide();
        frm.Show();
    }
public partial class Form2 : Form
    {
        Form1 frm;
        public Form2(Form1 fr)
        {
            InitializeComponent();
            frm = fr;
        }

        private void button1_Click(object sender, EventArgs e)//when you click button1 on form2 it shows form1
        {
            this.Hide();
            frm.Show();

        }

       }
    }
Form2 newform=新Form2()

this.Hide()

newForm.ShowDialog()

this.Show()


是的,我知道这个属性,我正在使用它显示第二个表单。但是有没有其他方法可以连接表单而不是更改位置。因为我必须同时移动两个表单“表单将连接而不是更改位置”。“连接”这个词的确切含义是什么?按视觉连接方式连接或按窗体耦合方式连接?视觉连接方式,第二个窗体为弹出型,单击第一个窗体打开,移动时仅主窗体不移动第二个窗体。移动后,点击主窗体第二个窗体打开连接到它的窗体,我已经设置好了它的位置对不起,它的Eid在这里,所以我回复晚了。请纠正我,如果我理解正确的话,当你点击主窗体上的某个按钮时,会打开一个新窗体,对吗?因为您的上述内容和您的问题似乎相互矛盾。是的,表单在单击第一个表单时打开,它们仍应连接。我移动第一个表单,再次单击第一个表单,第二个表单隐藏。我使用第一个窗口设置第二个窗口的位置,但在移动第一个窗口时,第二个窗口保持不变,因为位置在移动之后发生了变化点击第一个窗口。我想移动第二个窗口和第一个窗口,保持两个窗口都打开。