在我正在編寫的Windows窗體應用程序的主窗體上,我有一個SplitContainer和一個左右面板。右側面板中的錨點設置在右側(或右側和左側)的控件不會留在我放置在設計器中的位置。定期地,控件將像素向左移(在設計器中,而不是在運行時)。對於左右兩側的控件,控件會縮小,但是對於右側的控件,整個控件向左移動,同時保持相同的大小。有誰知道爲什麼發生這種情況或如何避免它?現在,我唯一能做的就是定期將他們移回去。爲什麼WinForms設計器中的控件會自行調整大小?
注:我的Windows窗體設計器目前設置了LayoutMode = SnapToGrid,對齊網格= true,並且5×5
編輯的網格大小:我設法找到一種方式來重現這個問題最終在Visual Studio 2012中。創建一個新的Windows Forms項目,使用我正在使用的相同設計器設置,並將SplitContainer添加到窗體。讓它停靠填充(或使用錨定到所有邊)。現在,將SplitterDistance設置爲100,將SplitterWidth設置爲5.將一個按鈕添加到SplitPanel的右側,並將其設置爲Bottom和Right。移動按鈕,使其右邊緣與SplitPanel側面齊平,然後關閉並打開窗體。神奇的是,按鈕已經向左移動了一個像素。
這裏是什麼樣子你關閉它(在這種情況下,按鈕的位置是105,175)前:
這裏是什麼樣子後,關閉並重新打開它(現在按鈕的位置是104,175):
我希望這個例子能幫助任何人重現這個問題。
我現在已經找到一種方法讓您重現問題,並相應地更新了問題。希望能夠讓我擺脫「不會記錄他們問題的程序員」的境界。 – ahouse101