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

タイトル ダブルバッファリング
投稿日: 2007/10/08(Mon) 00:29
投稿者たーくん
初心者たーくんです
いつもお世話になります

ダブルバッファリングの試験的なプログラムを作っていますが
うまくいきません。
過去レス等見て下記まで自分で作りましたが行き詰まりました。
よろしくお願いします

(目的)フォームにピクチャーボックス1(300×300)が有ります。
「10ヶづつ緑の四角をバッファに描画した後、画像に転送させる」
等速で行いたい。出来れば自作のサブプロシージャから好きなタイミングで呼び出したい。

(現状)
OnPaintメソッドが自分の好きなタイミングで呼べない。呼び方がわからない。
Onpaintメソッドは勝手に呼ばれているうえに不均等な呼び出し速度。


m(--)m   2005EE です

'--------------------------------------------------------------------
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.SetStyle(ControlStyles.DoubleBuffer, True)
        Me.SetStyle(ControlStyles.UserPaint, True)
        Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)

    End Sub


    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        MyBase.OnPaint(e)

        Dim g As Graphics = PictureBox1.CreateGraphics
        Dim brush As SolidBrush = New SolidBrush(Color.Green)
        Dim x As Integer, y As Integer
        Dim ran As Random = New System.Random
        For i As Integer = 0 To 10
            x = ran.Next(300)
            y = ran.Next(300)

            Dim rec As Rectangle = New Rectangle(x, y, 10, 10)

            g.FillRectangle(brush, rec)
        Next

    End Sub
End Class

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

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