tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルスクロールバーが消えない
記事No7577
投稿日: 2008/05/20(Tue) 19:43
投稿者へむ
はじめまして。
いつも参考にさせていただいてます。

早速質問なのですが、パネル内のピクチャーボックスに画像を貼り付けて、
NumericUpDownに入力された数値で画像を拡大・縮小するズーム機能を付けたいと
思うのですが、縮小したときにパネルのスクロールバーが、
AutoScrollプロパティで自動で消えるのかと
思ったのですが、消えてくれません。

ご存知の方ご教授お願いいたします。
よろしくお願いします。

    Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged

        'PictureBox1のGraphicsオブジェクトの作成
        Dim img As Bitmap = New Bitmap("C:\XXXXX.jpg")
        Dim g As Graphics = PictureBox1.CreateGraphics()

        Dim pZoom As Double
        pZoom = (CDbl(NumericUpDown1.Value) / 100)
        Dim rect As RectangleF = _
            New RectangleF(0, 0, pZoom * img.Width, pZoom * img.Height)
        g.DrawImage(img, rect)

        'BitmapとGraphicsオブジェクトを破棄
        img.Dispose()
        g.Dispose()

     End Sub

[ツリー表示へ]
タイトルRe: スクロールバーが消えない
記事No7578
投稿日: 2008/05/20(Tue) 21:37
投稿者Hongliang
AutoScroll は、子コントロールのサイズ(と位置)でスクロールバーを制御します。
なので PictureBox.Size を変更しない限りは変わりません。

あと、ValueChanged イベントで直接描画しても、ほかのウィンドウが重なったり最小化したりしたら消えますよ。
せっかく PictureBox を使うんですから、Image プロパティに画像をはっつけるのが良いです。SizeMode プロパティを StretchImage や Zoom あたりにすれば、PictureBox.Size を変更するだけで自動的にスケーリングもしてくれます。

[ツリー表示へ]
タイトルRe^2: スクロールバーが消えない
記事No7581
投稿日: 2008/05/21(Wed) 10:20
投稿者へむ
アドバイスありがとうございます。
おかげさまで解決しました。
難しく考えすぎていたようです。
ありがとうございます。

[ツリー表示へ]