我正在Windows窗體中構建一個簡單的圖像瀏覽器/查看器應用程序。Windows窗體:重繪後保留滾動位置
主窗體包含一個Panel控件,AutoScroll啓用爲主應用程序MenuStrip下方的圖像創建可滾動內容區域。
在此面板內部動態放置一個或多個我定義的UserControl對象。其中每一個都包含一個GroupBox(爲每組縮略圖顯示一個標題),其中又包含一些按鈕和一個FlowLayoutPanel,該FlowLayoutPanel中填充了一個或多個顯示圖像縮略圖的PictureBox對象。
可以單擊每個縮略圖以在應用程序窗口中以全尺寸或儘可能接近它的方式打開所選圖像。這是通過動態生成一個佔據整個窗口的PictureBox控件來實現的,該控件帶有一個z-index值,使其顯示在縮略圖網格上方,從而使其隱藏。
我遇到的問題是,當我創建和銷燬疊加的PictureBox控件時,包含縮略圖的基礎Panel控件會重繪本身,並且這會將其滾動位置重置爲頂部,如果您先前向下滾動,這會很煩人在所有。
奇怪的是,有時滾動位置被保留下來,我不能確定一個模式來解釋不一致的行爲。
任何人都可以提出一個簡潔的解決方案,以防止這種情況發生?或者我需要檢查面板的滾動位置,並在重繪後以編程方式將其重新設置爲相同的值?
您是否找到該問題的答案?我有一個類似的問題,試圖在重繪後堅持自定義控件的flowlayout面板的滾動位置。 – wonea 2013-01-22 15:59:47