0

ランダムに配置された を含むパネル (自動スクロール付き) がUserControlsあります。これらのコントロールの場所を保存し、後で読み込んで、以前の場所に正確に配置されるようにします。

.NET でこれを行う適切な方法は何ですか? 現時点では、これは X、Y としてデータベースに保存しているものです。

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

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

そして、私が行うコントロールをロードするとき: control.Location = new System.Drawing.Point(X, Y);

しかし、AutoScroll が .NET で動作する方法のために、何かが足りないと思います。読み込み後に、コントロールが (以前の位置とは異なり) 間違って配置されていることに気付くことがあります。

しばらく頭が混乱していたので、ここで何らかの情報を見つけていただければ幸いです。

4

3 に答える 3

0

app.config ファイルを使用してこれらの設定を保存できます。そのため、それらを元に戻す必要がある場合は、app.config 内のキーの設定を呼び出すだけです。

適切な方法はないと思いますが、うまくいくと感じたとしても、動的に作成されたコントロールを使用する場合は、現在のようにデータベースを作成できます。ただし、数が少ない場合は、app.config ファイルの方がうまく機能します。

于 2013-03-08T20:56:23.997 に答える
0

使用しているすべての構成についてはわかりませんが、スクロール バーの増分ステップが整数であることを確認してください。次に、コントロールが親フォームではなくパネル コントロール ツリーに追加されていることを確認し、場所を設定します。

于 2013-03-08T20:49:54.223 に答える
0

スクロール後にコントロールを現在の視覚的な位置に戻したいと思いますが、それが自動スクロールを考慮に入れる理由ですか? コントロールの配置が間違っていると言うとき、それらは互いに相対的に移動しましたか、それとも全体が間違った位置に「スクロール」されましたか?

Math.Abs​​ についてよろしいですか? これは少し奇妙に思えます。Location.X と AutoScrollPosition.X を追加するだけで試してみます (または -AutoScrollPosition.X を使用)

また、AutoScrollPosition が現在 0 であることを復元時に確認します。

于 2013-03-08T22:09:17.697 に答える