[.Net 2.0]StatusStrip 設定 Padding 屬性後會造成 ToolStripStatusLabel 顯示不正常

最近有一個專案的狀態列不會顯示,經過詳細精簡過濾後,比對出程式碼是多了一行 Padding 的設定,懷疑是 bug ,照慣例,整理好發給 CSS 來確認這個問題。
發到 CSS 後,首先得到回應是說我的點數用完了。
疑?我今年向 CSS 提的都是未公開的 bug 或是未說明的功能變更 (undocument) ,怎麼會被扣點?只好呼叫 Moli ,擋點技術支援點數來花花。Moli 馬上義不容辭的拿出點數來贊助,不過 Moli 今年的點數也花完了,所以拿明年的點數來抵,我再打給 CSS ,告知 Moli 要出點數,順便查詢我的點數花費情形,MVP 是送三點,在任期內有效,也就是說到 2007/12/31 就到期了,而我被扣點的問題分別有下面四項:
依往例這四個問題都不該被扣點,不過我的點數也快到期了,而且追查點數花用的話,會涉及內部行政控管,支援工程師處理我的問題也很辛苦了,我也不希望影響到他們,所以還是花 Moli 的點數吧,不過 Moli 的點數就要確認是否會被扣點,這個 Case 的支援工程師已經確認不會扣點。
 
原始發問問題內容如下:

From: 鄭子璉
Sent: Tuesday, December 25, 2007 10:09 PM
To: ‘mstcpss@mssupport.microsoft.com’
Subject: [.Net 2.0] StatusStrip
類別在 Win2k/Vista 特定狀態下顯示不正常

 

標題:

[.Net 2.0] StatusStrip 類別在 Win2k/Vista 特定狀態下顯示不正常

(.Net framework 2.0 內建類別。)

 

造成問題:

無法正確顯示畫面

 

重現步驟(產生之專案如附件壓縮檔):

1.

程式碼較為繁瑣,請直接利用附件專案開啟並執行,專案經過簡化整理,已找出發生問題程式碼。

 

2.

附件程式碼說明:

Windows XP/2003 SP2下執行後,可得正常顯示畫面,如圖,左下角顯示「狀態」:

 

Windows 2k / Vista  則無法正確顯示圖形,如圖,左下角無顯示 (原始專案在 Win2k/Vista 上無顯示才整理此測試例,但此測試例未散布到客戶 Win2k 電腦,僅在 Vista 測試)。

  

3.

經過測試過濾後,在 Vista 上變更下列 a, b 二種任一狀態(或)時,均可回復正常顯示。

 (MDIParent1.vb 內無程式碼)

 

a. 將測試專案內使用 Sub InitializeComponent (MDIParent1.Designer.vb),程式碼中 Me.stsStatusBar.Padding = New System.Windows.Forms.Padding(1, 0, 10, 0) 註解掉可正常顯示:

         

          ‘stsStatusBar

         

          Me.stsStatusBar.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tssHelpBar})

          Me.stsStatusBar.Location = New System.Drawing.Point(0, 139)

          Me.stsStatusBar.Name = "stsStatusBar"

          Me.stsStatusBar.Padding = New System.Windows.Forms.Padding(1, 0, 10, 0)

          Me.stsStatusBar.ShowItemToolTips = True

          Me.stsStatusBar.Size = New System.Drawing.Size(176, 22)

          Me.stsStatusBar.TabIndex = 7

          Me.stsStatusBar.Text = "StatusStrip1"

 

b. 將測試專案內使用 Sub InitializeComponent (MDIParent1.Designer.vb),程式碼中 Me.tssHelpBar.Spring = True 註解掉可正常顯示:

         

          ‘tssHelpBar

         

          Me.tssHelpBar.AutoToolTip = True

          Me.tssHelpBar.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft

          Me.tssHelpBar.Name = "tssHelpBar"

          Me.tssHelpBar.Size = New System.Drawing.Size(165, 17)

          Me.tssHelpBar.Spring = True

          Me.tssHelpBar.Text = "狀態"

          Me.tssHelpBar.TextAlign = System.Drawing.ContentAlignment.MiddleLeft

 

  a b 步驟修改後,正常顯示之畫面如下,左下角顯示「狀態」

 

 

連絡資訊:

姓名:鄭子璉

電話:xxxxxxxxxx / xxxxxxxxx

技術支援服務合約編號:xxxxxxxxx

E-Mail xxxx@xxxx.xxxx.xxx , xxxx@xxxx.xxxx.xxx

 

背景:

以下軟體皆為繁體中文版 (MSDN VST )

OS: Windows XP SP2 / Windows 2003 R2 SP2 / Windows Vista + Microsoft Update (2007/12/12)

開發工具: Visual Studio Team Suite 2005 8.0.50727.762 (SP.050727-7600) 


造成這個問題的 Padding ,一般狀況是不會出現的,因為設計屬性上已經被拿掉的,可能是我曾經大範圍的變更 Padding 屬性,所以造成自動出現這行。
 
更奇怪的是我測試的 WinXP/2003 開發電腦都能顯示,微軟那邊裝的乾淨的虛擬電腦不能顯示,有點詭異。
 
詭異的不只這項,我在 2007/12/5 有裝 .Net framework 2.0 SP1 ,但是下載中心卻找不到這個:
 
 
所以也有點奇怪。
 
根據支援工程師電話說,這個問題內部的 RD 以有記載是一個已知的問題,但是是內部文件,所以沒有放在 http://support.microsoft.com/ 上。回覆內容如下:

Sent: Friday, December 28, 2007 10:35 AM
To: 鄭子璉
Subject:
微軟回覆您的問題 – QA/StatusStrip 設定 Padding 屬性後會造成 ToolStripStatusLabel 顯示不正常

 

鄭先生您好:
謝謝您的來電。敝姓*,我是台灣微軟技術支援工程師,很榮幸有機會為您服務。關於您遇到的問題,請參考以下報告。若步驟中有任何不清楚或需要進一步的協助,為避免我們因在電話中而耽誤接聽您電話的時間,建議您先以 EMAIL 方式回覆給我,我將在收到您的來信後儘速與您連絡,謝謝。

問題代號

 

 

問題描述QA/StatusStrip 設定 Padding 屬性後會造成 ToolStripStatusLabel 顯示不正常

 

 

解決方案︰

這是一個已知的問題,StatusStrip Padding 屬性及 SizingGrip 屬性的設定,與 ToolStripStatusLabel Spring 屬性的設定會互相影響,造成顯示方面不如預期。也因此在 VS2005 的工具中,StatusStrip 的屬性視窗已經將 Padding 屬性隱藏起來,目的就是希望使用者不要動到這個屬性。雖然使用者仍然可以使用手動方式加入程式碼設定 Padding 屬性,但是這可能會造成一些無法預期的結果,因此建議您儘量不要去動到 StatusStrip Padding 屬性。

 

 

請您參考上述資訊,若有任何不清楚或需要進一步協助,請儘速與我連絡,謝謝!

 

技術支援工程師 Support Engineer
Developer Support Team
Global Technical Support Center – Taiwan
技術支援服務首頁: http://support.microsoft.com
技術支援專線: 0800-008-833(市話專用)/ 02-2999-8833
 

 

Delighting our customers is our #1 priority. We welcome your comments and suggestions about how we can improve the service provided to you. Please feel free to email our management team at gtscfb@microsoft.com or contact my manager directly at cych@microsoft.com.


 
廣告
Categories: 更新與回報 | 2 則迴響

文章分頁導航

2 thoughts on “[.Net 2.0]StatusStrip 設定 Padding 屬性後會造成 ToolStripStatusLabel 顯示不正常

  1. 子璉

    補充:
    在多個 ToolStripStatusLabel 下,只要有一個用到 Spring 屬性 = True 的,就會造成 Vista 下最後一個不顯示。
    暫時解決方案就是加個空白的 ToolStripStatusLabel 在最後面,既然是空白的 ToolStripStatusLabel ,是否顯示就沒影響了。

    按讚數

  2. 俊霖

    我的問題跟你很類似,
    不過我是做工具書範例時出現的,
    我的StatusStrip中有3個物件,
    第一個是ToolStripButton、第二個是ToolStripProgressBar、第三個是ToolStripStatusLabel
    第三個是用來顯示時間的,範例中是把它的Spring屬性設成True,跑的時候卻顯示不出來,
    我找了老半天,把它設成False就可以顯示了,我最後是把AutoSize設成False,手動調整長度來排版,
    可是我用的是Windows2003,還是發生了。
     

    按讚數

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

在WordPress.com寫網誌.

%d 位部落客按了讚: