- ベストアンサー
VisualBasic2008のGraphicsでのエラー
- VisualBasic2008でGraphics描画を勉強中ですが、g.FillEllipse()の行でエラーが発生します。
- エラーメッセージは『使用されたパラメータが有効ではありません。』です。
- 修正箇所が分からず苦しんでいます。ご教示いただけないでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
先ほどの回答に追記しておきます。 別にForm_Paintでなくともよいです。 要は「g」という定義が正しく定義されていればエラーもでないかと。 どこに描画するのか指定しなさいって事なんでしょうかね。 FormにButtonを1つ貼り付けました。 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim MyBrush As Brush = New Drawing2D.LinearGradientBrush(New Rectangle(5, 5, 120, 60), Color.Yellow, Color.Black, 40) Dim g As System.Drawing.Graphics = Me.CreateGraphics g.FillEllipse(MyBrush, New Rectangle(5, 5, 120, 60)) End Sub
その他の回答 (2)
- Rilakkuma_san
- ベストアンサー率32% (33/101)
「g」を定義していて「FromImage」で指定してるんですね。 そうなると前述した意味のエラーではないのかも・・・ FormにButtonとPictireBoxを配置してButton_Clickイベントに 提示してもらったソースを記述したところエラーなんて出ませんでしたよ?
- Rilakkuma_san
- ベストアンサー率32% (33/101)
こんちわ。 「g.FillEllipse」の「g」はどっから持ってきました? それと何かのイベントに記述しているんだと思いますがどのイベントに記述してますか? 試してみましたが↓ Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint Dim MyBrush As Brush = New Drawing2D.LinearGradientBrush(New Rectangle(5, 5, 120, 60), Color.Yellow, Color.Black, 40) e.Graphics.FillEllipse(MyBrush, New Rectangle(5, 5, 120, 60)) End Sub 上記のイベントでは「g」を「e.Graphics」とする事で動作確認できましたよ。
補足
>どこに描画するのか指定しなさいって事なんでしょうかね。 そういうエラーでしたか。 >「g.FillEllipse」の「g」はどっから持ってきました? すみません、さっきのコードとは別の場所にかいてあったので抜けてしまいました。 改めて全コードを書くとこうなります。 このコードだとなぜ上手くいかないのでしょうか? Dim g As Graphics PictureBox1.Image = New Bitmap(Me.PictureBox1.Size.Width, Me.PictureBox1.Height) g = Graphics.FromImage(PictureBox1.Image) Dim MyBrush As Brush = New Drawing2D.LinearGradientBrush(New Rectangle(5, 5, 120, 60), Color.Yellow, Color.Black, 40) g.FillEllipse(MyBrush, New Rectangle(5, 5, 120, 60))