[英]Open second form, right next first form
我正在使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.