[英]Switch between multiple Forms with different solutions in C#
我有一個主要的 function,它顯示了一個 Windows 這樣的表格
myForm = new Form800x600();
myForm 在我的 class 的頭部聲明:
private Form800x600 myForm;
但是我必須根據from的分辨率實現一個開關,這樣我就可以有多個分辨率和forms:Form1024x768,Form1920x1080等等。 我不能在那里使用錨,我不想在運行時調整它的大小。
我該怎么做,以便在我的 forms 中使用不同的功能,例如:myFrom.DoThings(); 什么時候 myForm 可以改變?
謝謝
我不確定我明白你的意思。 但我認為你必須檢測屏幕的重新分辨率。 為此,請使用Screen.PrimaryScreen.Bounds
。 並在所有 forms 中實現一個接口,以訪問所有的DoThings()
方法。
如果絕對必須,則使用元組(更容易):
private Form form800x600; // replace Form with Form800x600
private Form form1024x768; // replace Form with Form1024x768
private Form form1920x1080; // replace Form with Form1920x1000
private Form form3840x2160; // replace Form with Form3840x2160
public Form1()
{
InitializeComponent();
SizeAtStartup();
}
public void SizeAtStartup()
{
(int width, int height) = (Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
switch (width, height)
{
case (800, 600):
form800x600 = new Form(); // replace Form with Form800x600
form800x600.Show();
break;
case (1024, 768):
form1024x768 = new Form(); // replace Form with Form1024x768
form1024x768.Show();
break;
case (1920, 1080):
form1920x1080 = new Form(); // replace Form with Form1920x1080
form1920x1080.Show();
break;
case (3840, 2160):
form3840x2160 = new Form(); // replace Form with Form3840x2160
form3840x2160.Show();
break;
default:
break;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.