タイトル : Re^9: AutoScroll 投稿日 : 2009/07/25(Sat) 14:37 投稿者 : 魔界の仮面弁士
> > 少なくとも、スクロール完了時には正常に再描画されるようになります。 > これだと、(1)の一緒にスクロールと言う点でダメでした。 そもそも、今はどのようにしているのでしょうか? Panel の背景画像だとしたら、(1) の要求は満たせないので、何にせよ、 Panel の上に何か(例: PictureBox)を載せて、 そこに画像を割り当てる必要があるはずですが。 > > 見た目の話では無く、クリック時の問題だけであるならば、 > > PictureBox のクリック時に、Panel のクリック時の処理を呼び出せば済むと思います。 > かなりのコーディング修正になるので、この方法は保留とさせてください。 画面イメージを見ていないので、なんとも言えないのですが、クリック時の処理のために、 Sub Panel1_Click(…) Handles Panel1.Click を Sub Panel1_Click(…) Handles Panel1.Click, PictureBox1.Click とするだけでは駄目なのでしょうか? > Form1.Designer.vbの書換えですか。大変そうですね。f(^^; 1行変更するだけですよ。Form1.Designer.vb を修正したくなければ、 Form1_Load に、Controls.Add しなおすコードを記述しても OK です。 > ですが、そうするしかないような気もしてきました。 本当に「そうするしかない」のですか? その方法では問題を解決できなかったのですよね?(↓) > > > Panelを透過させて後ろにあるPictureBoxを映し出せたら良いのですが。 > > 出来ますが、それだと描画崩れの問題は解決できない(むしろ悪化する)と思いますよ。 > 試してみましら、その通りでした・・・。 もし、パネル背景 の PictureBox を表示させつつ、スクロール崩れにも対応させるなら、 [Form1] ┣[Panel1] AutoScroll = True ┃┣[PictureBox1] Image = 任意画像 ┃┃┗[Panel2] BackColor = Transparent、Click イベント処理用 ┃┃ ┗[その他のコントロール] ┃┗[その他のコントロール] ┗[その他のコントロール] という構成にするという手もあるかと。 |