Windowsフォームで簡単な画像ブラウザ/ビューアアプリケーションを構築しています。
メインフォームには、自動スクロールが有効になっているPanelコントロールが含まれており、メインアプリケーションのMenuStripの下に画像のスクロール可能なコンテンツ領域を作成できます。
このパネル内には、私が定義した1つ以上のUserControlオブジェクトが動的に配置されます。これらのそれぞれには、GroupBox(サムネイルの各グループのタイトルを表示するため)が含まれています。GroupBoxには、いくつかのボタンと、画像のサムネイルを表示する1つ以上のPictureBoxオブジェクトが入力されたFlowLayoutPanelが含まれています。
各サムネイルをクリックすると、選択した画像をフルサイズで開くか、アプリケーションウィンドウ内でできるだけ画像に近づけることができます。これは、ウィンドウ全体を占めるPictureBoxコントロールを動的に生成し、サムネイルグリッドの上に表示するz-index値を使用して、ウィンドウを不明瞭にすることで実現されます。
私が抱えている問題は、オーバーレイされたPictureBoxコントロールを作成および破棄すると、サムネイルを含む基になるPanelコントロールが再描画され、スクロール位置が一番上にリセットされることです。これは、以前にスクロールダウンしたことがある場合は煩わしいことです。
奇妙なことに、スクロール位置が保持されることがあり、一貫性のない動作を説明するためのパターンを決定できません。
誰かがこれを防ぐためのきちんとした解決策を提案できますか?または、パネルのスクロール位置を調べて、再描画後にプログラムで同じ値に戻す必要がありますか?