2013-10-10 48 views
0

我真的很生氣,試圖修復使用Visual Studio 2010的C#中的錯誤:當在面板中的圖片框控件中加載圖片時,圖片自動調整大小以填充整個區域。表單行爲與Dock屬性相同:fill;但是在設計器正確面板中顯示的Dock屬性顯然是:無,如預期的那樣。VS 2010中代碼和表單屬性之間的錯位

只是爲了確保,兩個小時的調試和測試後,想明白了,我查了Mainform.Designer.cs源,用我最大的驚喜,我發現這行代碼:

this.pictureBox.Dock = System.Windows.Forms.DockStyle.Fill; 

我絕對確定我在說什麼:我仔細檢查了代碼和屬性面板。手動更改後(我知道我不應該):

this.pictureBox.Dock = System.Windows.Forms.DockStyle.None; 

所有按設計啓動和運行。

換句話說,代碼和Visual Studio中顯示的屬性之間存在錯位。現在,我的問題是:是我還是其他人已經注意到了這種行爲?有人指出有時代碼和VS顯示的屬性是兩回事嗎?或者這是由於我所做的令人難以置信的馬虎/錯誤/白癡?如果解釋是後者,請提供一些關於可能錯誤的暗示(當然除外)?如果解釋是前者,那麼有人在那裏用C#編程而不用Visual Studio並且很開心?

感謝您的想法。


更新。該問題存在並且表面甚至訪問不同的參數。進一步的細節匯聚於此:

Trello CS board

+0

這只是你。不得不選擇「C#中的一個bug」,並且你意外地設置了Dock屬性並且不記得你做了,我不得不贊成後面的解釋。向我們展示一個repro。 –

+0

爲什麼你不應該手動更改屬性?我從不使用VS中的屬性面板。 – Saggio

+0

@HansPassant:我不喜歡堅持,我試圖檢測證據是它是我(我會非常樂意發現這一點,因爲這種情況下的解決方案很容易),但即使訪問不同的參數也存在問題。我在文章編輯中收集了一些更多細節。無論如何,我的VS實例沒有與源代碼控制集成。 – Daniel

回答

1

當你有designer.cs權限問題可能發生這種情況。即,當您的代碼與源代碼控件集成時,它將使其只讀以識別簽出的文件。

相關問題