0

グラフィックがバッファリングされた基本的なユーザーコントロールを作成したかったのです。しかし、何かが正しくありません。Using gr As Graphics = Graphics.FromImage(m_Buffer) という行で停止します。

VS2010をクラッシュさせることさえできました。そのため、いくつかのエラーを導入したと思われます。サンプル コードからほとんどの部分をコピーしましたが、デザイナーで選択できるイベントの 1 つではなかったため、少なくとも OnPaint が呼び出されることはないと思います。

助けてくれてどうもありがとう!

Public Class UserControl1

Private m_Buffer As Bitmap

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

    e.Graphics.DrawImage(m_Buffer, Point.Empty)
    'MyBase.OnPaint(e)'what is this for?

End Sub
Public Sub PaintSomething()

    Using gr As Graphics = Graphics.FromImage(m_Buffer)
        gr.FillEllipse(New SolidBrush(Color.Blue), 0, 0, 100, 100)
    End Using

    Me.Invalidate()

End Sub
Public Sub New()

    InitializeComponent()

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

End Sub

Private Sub UserControl1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize

    m_Buffer = New Bitmap(Me.ClientSize.Width, Me.ClientSize.Height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb)

End Sub

クラス終了

4

0 に答える 0