Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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# 打开第二张表格,右下一张表格_C#_Winforms_Visual Studio_Location - Fatal编程技术网

C# 打开第二张表格,右下一张表格

C# 打开第二张表格,右下一张表格,c#,winforms,visual-studio,location,C#,Winforms,Visual Studio,Location,我正在使用winforms 我创建了一个即将完成的应用程序。考虑下面的内容:我有两种形式,第一种形式在应用程序启动时启动,第二种形式需要在第一个窗体旁边打开。 例如: 如何在第二张表格中访问第一张表格的位置?我应该把这个发送给第二个表单的构造函数吗 编辑 以下代码帮助了我: private void changelogToolStripMenuItem_Click(object sender, EventArgs e) { if (_changelog.IsDisposed)

我正在使用winforms

我创建了一个即将完成的应用程序。考虑下面的内容:我有两种形式,第一种形式在应用程序启动时启动,第二种形式需要在第一个窗体旁边打开。 例如:

如何在第二张表格中访问第一张表格的位置?我应该把这个发送给第二个表单的构造函数吗

编辑

以下代码帮助了我:

private void changelogToolStripMenuItem_Click(object sender, EventArgs e)
{
     if (_changelog.IsDisposed)
     {
            _changelog = new Changelog();
     }
            _changelog.Location = new Point((Left + Width), Top);
            _changelog.Show();
}

在设计构造函数时要记住的一条基本规则是:永远不要给构造函数提供任何不必要的信息

所以,这里你需要的不是另一个窗口,而是它的位置。 更好的是,您需要新窗口的位置

这意味着您不应该让第二个表单知道第一个表单,相反,它的构造函数应该采取以下两种方式之一:

单参数点定位 两个参数intx,inty 取决于你的喜好。 当然,您可以同时使用这两个构造函数,因此您可以决定是给出点位置还是int x,int y

说了这么多,忘了你读的东西吧。 与使用构造函数相比,创建第二个表单时,我只需手动设置属性:

SecondForm form = new SecondForm()
{
    Location = new Point(this.Right, this.Top)
};
这只是另一种说法:

SecondForm form = new SecondForm();
form.Location = new Point(this.Right, this.Top);

在设计构造函数时要记住的一条基本规则是:永远不要给构造函数提供任何不必要的信息

所以,这里你需要的不是另一个窗口,而是它的位置。 更好的是,您需要新窗口的位置

这意味着您不应该让第二个表单知道第一个表单,相反,它的构造函数应该采取以下两种方式之一:

单参数点定位 两个参数intx,inty 取决于你的喜好。 当然,您可以同时使用这两个构造函数,因此您可以决定是给出点位置还是int x,int y

说了这么多,忘了你读的东西吧。 与使用构造函数相比,创建第二个表单时,我只需手动设置属性:

SecondForm form = new SecondForm()
{
    Location = new Point(this.Right, this.Top)
};
这只是另一种说法:

SecondForm form = new SecondForm();
form.Location = new Point(this.Right, this.Top);

为什么不在打开新表单时定位它

Form2 f = Form2();
f.Location = new Point(this.Left + this.Width, this.Top);
f.Show();  // Or ShowDialog()

当然,这需要将第二个表单属性StartPosition设置为FormStartPosition.Manual。为什么不在打开新表单时定位它

Form2 f = Form2();
f.Location = new Point(this.Left + this.Width, this.Top);
f.Show();  // Or ShowDialog()

当然,这需要将第二个表单属性StartPosition设置为FormStartPosition。如果允许,Manual将接受您的答案,因为您的答案解决了问题。如果允许,Manual将接受您的答案,因为您的答案解决了问题