2

VB6 アプリケーションを、ピクチャ ボックスに描画する VB.Net に変換しています。当然、私は素晴らしいマニュアルを読み、この例をここに上げます。そのため、ピクチャボックスのみを含むフォームで小さなプロジェクトを作成し、次のことを試しました:-

Private Sub Picture1_paint(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) _
            Handles PictureBox1.Paint
    Dim mygraphics As Graphics
    mygraphics = PictureBox1.CreateGraphics
    Dim pen As New Drawing.Pen(System.Drawing.Color.Red, 1)
    mygraphics.DrawEllipse(pen, 0, 0, 100, 100)
    pen.Dispose
End Sub

それが言うように。しかし、アプリケーションを実行すると、ボックスは空白になります。ヘルプを検索すると、代わりにa を使用するよう提案されましたが、結果は同じでした。Frame背景色で描画していないこと、および関数が実際に呼び出されていることを確認しました。

私は何を見落としましたか?

4

2 に答える 2

2

ペイント ハンドラーに の無効なタイプがありEventArgsます。そのはずSystem.Windows.Forms.PaintEventArgs

プロパティを使用e.Graphicsしてグラフィックス インスタンスを取得します。

 mygraphics = e.Graphics

参照リンクMSDN - Control.Paint イベント

于 2012-06-28T13:45:15.687 に答える
1

ePainEventArgsタイプだと思いますが、にはすでにグラフィックスオブジェクトが含まれていますe.Graphics。代わりにそれを使用してください。

Public Class Form1

    Private Sub PictureBox1_Paint(ByVal sender As System.Object, _
                ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint

        Dim pen As New Pen(Color.Red, 1)
        e.Graphics.DrawEllipse(pen, 0, 0, 100, 100)
        pen.Dispose()

    End Sub

End Class

スクリーンショット

于 2012-06-28T13:48:38.770 に答える