打开第二个表格,右下一个表格
问题描述:
我正在使用winforms。打开第二个表格,右下一个表格
我创建了一个即将完成的应用程序。考虑以下几点:我有两种形式,第一种形式从应用程序启动开始,第二种形式需要在第一种形式旁边打开。
实施例:
我怎样才能在第二形式访问所述第一形式的位置?我应该将“this”发送给第二个表单的构造函数吗?
编辑
下面的代码帮了我:
private void changelogToolStripMenuItem_Click(object sender, EventArgs e)
{
if (_changelog.IsDisposed)
{
_changelog = new Changelog();
}
_changelog.Location = new Point((Left + Width), Top);
_changelog.Show();
}
答
一个基本原则要牢记一个设计的构造方法时:永不放弃的构造任何不必要的信息。
所以,你需要的不是其他窗口,而是它的位置。 更好的是,您需要新窗口应该位于的位置。
这意味着,你不应该让第二种形式了解的第一种形式,而不是它的构造应该采取两种:
- 一个参数
Point location
- 两个参数
int x, int y
根据在你的优先。 你当然可以(应该)有两个构造函数,所以你可以决定是否给Point location
或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
会接受你的答案时,我允许这样做,因为你的回答解决了这一问题 – Max 2013-05-03 11:58:41
@Mobstaa很乐意帮忙, 感谢你的接纳 :) – 2013-05-03 12:20:34