簡體   English   中英

Visual C#2010 Express:Win7和WinXP上的表單相同但大小不同

[英]Visual C# 2010 Express: Same Form But Different Size on Win7 and WinXP

我在Win7和XP上都使用Visual C#Express 2010。

我有一個Windows Form Application項目,並且有SevenXPForm(繼承自Form)。

我是在Win7的Visual C#Express 2010中創建的,然后在“屬性”面板中進行設置

.MinimumSize = 300, 300
.Size = 300, 300

TabControl位於窗體的中間:

替代文字

但是,當我保存項目/解決方案並在WinXP上的Visual C#Express 2010中打開時,大小更改為:

.MinimumSize = 300, 279
.Size = 300, 279

而且TabControl不再是Form的中間部分:

替代文字

當我再次在Win7上打開它時,它又回來了。

這困擾着我,因為我的應用程序有望在XP和Seven(以及Vista)上運行。

我是否需要設置一些東西使其在Win7和WinXP上表現完全相同?

彼得

您看到的問題是Windows XP和Windows 7之間窗體周圍的邊框不同。這導致窗口大小不同。 .NET嘗試解決此問題的方法是,而不是保存在屬性對話框中看到的窗口大小,而是實際上保存ClientSize ,即窗口的內部大小。 在屬性對話框中看到的是將大小轉換為包括外邊界的大小。 這意味着,當您在邊框較小的Windows XP上打開項目時,.NET會嘗試進行調整。

您似乎看到的問題是轉換中的問題。 它似乎確實考慮到較小的垂直尺寸,但沒有考慮較小的水平尺寸。

關於您的工作。 解決特定問題/解決方案的另一種方法不是自動調整選項卡控件的大小,而是讓.NET為您完成此操作。 如果將Padding在表格中,例如10, 10, 10, 10 ,並設置Dock標簽控制來Fill ,你會得到同樣的效果。

不過,我在這里看不到一般的解決方案,因為如果.NET本身在轉換中遇到問題,這將變得非常困難。

請看一下這個鏈接:

http://msdn.microsoft.com/en-us/library/ms229605.aspx

-

快速瀏覽

自動縮放使在一台具有特定顯示分辨率或系統字體的計算機上設計的表單及其控件可以在另一台具有不同顯示分辨率或系統字體的計算機上正確顯示。 它確保該窗體及其控件將智能地調整大小,以與用戶和其他開發人員的計算機上的本機窗口和其他應用程序一致。 與每個用戶計算機上的本機Windows應用程序相比,.NET Framework對自動縮放和視覺樣式的支持使.NET Framework應用程序可以保持一致的外觀。

這是個老問題,但是在Google中,所以我有一個答案,該答案可能對其他人有用,所以我將與大家分享(對不起,我的英語)。

1)畫一個面板1
2) panel1.Dock = DockStyle.Fill Form1_Load部分中的panel1.Dock = DockStyle.Fill ;
3)現在,無論您使用的是哪種操作系統(Win XP或7),都可以使用panel1的width和height獲取Form1的實際寬度和高度,而無論邊框樣式如何。

經過大量谷歌搜索后,我仍然找不到解決方案。 但是我確實有一個解決方案可以部分解決我的問題:

private void SevenXPForm_Load(object sender, EventArgs e)
{
    tabControl1.Width = this.ClientSize.Width - tabControl1.Left * 2;
    tabControl1.Height = this.ClientSize.Height - tabControl1.Top * 2;
}

這只是一個解決方法,我認為應該有一個更好的方法。

(如果表單上有很多控件該怎么辦?當然,我們可以將一個面板作為表單的唯一子控件,然后將所有其他控件添加到該面板中,雖然可行,但這太繁瑣了)

一個更可靠的解決方法是將整個表單的內容放入一個面板中,並設置對接以填充,然​​后像在該面板中那樣排列所有內容。 在解決此問題之前(假設確實如此),我建議您對所創建的每種表單都理所當然地進行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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