簡體   English   中英

C#中不同解的多個Forms之間切換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM