DOBON.NET DOBON.NETプログラミング掲示板過去ログ

フォームのスクロールについて

環境/言語:[C#]
分類:[.NET]

今フォームにA4サイズと同じ大きさの四角い線をフォームのペイントイベントで描画して画面いっぱいに入りきらないんでスクロールバー(垂直のスクロール)をつけて動かせるようになったのですが、その四角の線の上に移動ができるラベルをおいてスクロールバーをやったところ、スクロールバーの下の方までおろしてそこにラベルをもってきてまた上の方にスクロールバーをあげるとラベルがとんで少し上の方に現れてしまいます。よく見てみると、はじめの大画面の中ならスクロールは有効で大画面でみれないところにラベルをおくと大画面の方のロケーションにとんできちゃうんです。このラベルが見えない部分にもっていってスクロールしても、とばないで移動したままのロケーションでいる方法ってないでしょうか?
こんばんは、ピピさん。

■No6359に返信(ピピさんの記事)
> その四角の線の上に、移動ができるラベルをおいて、
> スクロールバーをやったところ、スクロールバーの下の方までおろして
> そこにラベルをもってきて、また上の方にスクロールバーをあげると
> ラベルがとんで少し上の方に現れてしまいます。
ちょっとイメージが掴みにくいのですが...(^_^;
スクロール自体の処理は、どういった実装をしているのでしょうか?
Panelコントロールを使用していればそんなことにはならないかと思うのですが?

> A4サイズと同じ大きさの四角い線をフォームのペイントイベントで描画して
Panelコントロールを使用すれば、これもFormのPaintイベントを使用しなくても良くなるかと思います。

イメージとしては、PanelコントロールにA4サイズになるように「何か」を配置します。
この「何か」は、"A4サイズと同じ大きさの四角い線"になるようなモノがよいでしょう。
その状態でAutoScrollが有効になっていれば、Panel内にA4サイズの空間ができます。
この上に配置していけば良いかと思われます。
ちなみにPanelはFormの大きさにピッタリ合わせて配置すれば、
"A4サイズと同じ大きさの四角い線"の空間をFormが持っているように見えます。

[↓]イメージとなるものをうぷしましたが、こういう意味ではないでしょうか?
質問内容を勘違いしてましたら、お許しくださいませ。m(_ _)m
(この記事にはファイル"NullpoSample02.zip"が添付されていましたが、削除されました。)
java.lang.Nullpoさん、お返事ありがとうございます。Panelコントロールを使ったらできました(^0^)ラベルをおいてやるとちゃんとついてきました。ありがとうございます。

DOBON.NET | プログラミング道 | プログラミング掲示板