tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^8: AutoScroll
投稿日: 2009/07/25(Sat) 14:21
投稿者VB
> スクロールさせたときに、そのイメージの位置として望ましいのは
>  (1) 一緒にスクロールしてほしい。
>  (2) スクロールに連動させたくない。
>  (3) 画像そのもののスクロールはどうでも良い。
> のいずれでしょうか?
(1)です。

> Panel 単体で現象を軽減したいのであれば、Panel の Scroll イベントで
> Panel の Invalidate メソッドを呼ぶようにすると、多少なりとも改善するかと思います。
> さらに念のため、Application の Idle イベントで、Panel の Update メソッドも
> 呼んでおくと良いでしょう。スクロール中の描画崩れを回避できるわけでは無いですが、
> 少なくとも、スクロール完了時には正常に再描画されるようになります。
これだと、(1)の一緒にスクロールと言う点でダメでした。

> 見た目の話では無く、クリック時の問題だけであるならば、
> PictureBox のクリック時に、Panel のクリック時の処理を呼び出せば済むと思います。
かなりのコーディング修正になるので、この方法は保留とさせてください。
すみません・・・。

> 『残念』という事は、Panel のクリック時の問題があるので採用はできなかったが、
> AutoScroll 時の画像の歪みそのものは解消していた、という事でしょうか?
おっしゃるとおり、クリックの問題がありましたが画像の歪みは改善されました。

> > Panelを透過させて後ろにあるPictureBoxを映し出せたら良いのですが。
> 出来ますが、それだと描画崩れの問題は解決できない(むしろ悪化する)と思いますよ。
試してみましら、その通りでした・・・。

> 一応手順的には、Panel を PictureBox の上に載せて(≠重ねて)、Panel の BackColor を
> Transparent にする事で、その下にある PictureBox の画像が透けて見えるようになります。
> なお、この場合のコントロール階層は、以下のようになります。
>  [Form1]
>  ┗[PictureBox]
>   ┗[Panel1]
>    ┗[その他のコントロール]
>
> ただしフォーム デザイナ上では 「PictureBox1.Controls.Add(Panel1)」の状態にできず、
>  [Form1]
>  ┣[PictureBox]
>  ┗[Panel1]
>   ┗[その他のコントロール]
> の状態にしかできないため、Form1.Designer.vb の InitializeComponent を
> 直接書き換える(あるいは、Form_Load 等で調整する)などの対処が必要ですけれどね。
> http://dobon.net/vb/dotnet/control/labelonpicturebox.html

Form1.Designer.vbの書換えですか。大変そうですね。f(^^;
ですが、そうするしかないような気もしてきました。
ない頭で色々考えてそれでも、実現不可能な場合
保留としていた方法でコーディングさせてもらいたいと思います。
アドバイスありがとうございました。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。