2013-03-08 78 views
0

我有一個包含隨機放置的面板(帶自動滾動功能)UserControls,我想保存這些控件的位置,並在稍後將它們加載回來,以便將它們放置到之前的位置。保存控件的位置並將其加載回

在.NET中這樣做的正確方法是什麼?目前,這是我保存到數據庫中的X,Y:

X:Math.Abs(panel.AutoScrollPosition.X) + control.Location.X;

Y:Math.Abs(panel.AutoScrollPosition.Y) + control.Location.Y;

當我加載控制我做的: control.Location =新的System.Drawing.Point(X,Y);

但我想我錯過了一些東西,因爲AutoScroll在.NET中的行爲方式。有時候,我發現加載後控件錯位(不像舊位置)。

我現在一直在想我,我真的希望我能在這裏找到一些信息。

回答

0

不確定您正在使用的所有配置,但確保滾動條的增量步驟是整數。接下來確保將控件添加回面板控件樹而不是父窗體並設置位置。

0

您可以使用app.config文件來保存這些設置,所以當您需要時,只需調用app.config中的密鑰設置即可。

我認爲沒有一個正確的方法,不管你覺得它的工作更好,但是如果你要有動態創建的控件,你可以擁有一個現在的數據庫。但是,如果只有其中幾個,app.config文件將會更好。

0

我認爲你想在滾動後將控件恢復到當前的視覺位置,這就是爲什麼你要考慮到自動滾動?當你說控件錯位,它們是相對於彼此移動還是整個「滾動」到錯誤的位置?

您確定Math.Abs​​嗎?這似乎有點奇怪;我會只是增加Location.X和AutoScrollPosition.X嘗試(或使用-AutoScrollPosition.X)

我還要檢查恢復的AutoScrollPosition目前0

相關問題