我真的很生氣,試圖修復使用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並且很開心?
感謝您的想法。
更新。該問題存在並且表面甚至訪問不同的參數。進一步的細節匯聚於此:
這只是你。不得不選擇「C#中的一個bug」,並且你意外地設置了Dock屬性並且不記得你做了,我不得不贊成後面的解釋。向我們展示一個repro。 –
爲什麼你不應該手動更改屬性?我從不使用VS中的屬性面板。 – Saggio
@HansPassant:我不喜歡堅持,我試圖檢測證據是它是我(我會非常樂意發現這一點,因爲這種情況下的解決方案很容易),但即使訪問不同的參數也存在問題。我在文章編輯中收集了一些更多細節。無論如何,我的VS實例沒有與源代碼控制集成。 – Daniel