|
分類:[VB.NET/VB2005 以降]
visual basic 2010を使用。 次のプログラム 参照されたし。
Public Class Form1 Dim img As New Bitmap(500, 500) Dim g As Graphics = Graphics.FromImage(img) Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '大きさを指定してBitmapオブジェクトの作成 ' Dim img As New Bitmap(500, 500)
'imgのGraphicsオブジェクトを取得 ' Dim g As Graphics = Graphics.FromImage(img)
' g.FillRectangle(Brushes.Red, 0, 0, 400, 400) 'g.FillRectangle(Brushes.Yellow, 25, 25, 350, 350)
'g.FillRectangle(Brushes.Black, 0, 0, 400, 400)
'g.FillRectangle(Brushes.Green, 50, 50, 300, 300)
'g.FillRectangle(Brushes.Cyan, 75, 75, 250, 250)
'g.FillRectangle(Brushes.Red, 100, 100, 200, 200)
'g.FillRectangle(Brushes.Magenta, 125, 125, 150, 150)
'g.FillRectangle(Brushes.Yellow, 150, 150, 100, 100)
Paintsikaku()
'作成した画像を表示する Dim pg As Graphics = PictureBox1.CreateGraphics() pg.DrawImage(img, g.VisibleClipBounds)
'リソースを開放する img.Dispose() g.Dispose() pg.Dispose() End Sub
Private Sub PictureBox1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick ' Dim img As New Bitmap(500, 500) ' Dim g As Graphics = Graphics.FromImage(img) 'g.FillRectangle(Brushes.Black, 0, 0, 400, 400)
'g.FillRectangle(Brushes.Blue, 25, 25, 350, 350)
'g.FillRectangle(Brushes.Green, 50, 50, 300, 300)
'g.FillRectangle(Brushes.Cyan, 75, 75, 250, 250)
'g.FillRectangle(Brushes.Red, 100, 100, 200, 200)
'g.FillRectangle(Brushes.Magenta, 125, 125, 150, 150)
'g.FillRectangle(Brushes.Yellow, 150, 150, 100, 100) Paintsikaku() ’ここで、止まってしまう Dim col1 As New Color col1 = img.GetPixel(e.X, e.Y)
Label1.BackColor = col1 Label2.Text = col1.Name
End Sub Private Sub Paintsikaku() ' Dim img As New Bitmap(500, 500) ' Dim g As Graphics = Graphics.FromImage(img) g.FillRectangle(Brushes.Black, 0, 0, 400, 400) ’ここで、パラメータが適切でないと、メッセージがでて、止まる
g.FillRectangle(Brushes.Blue, 25, 25, 350, 350)
g.FillRectangle(Brushes.Green, 50, 50, 300, 300)
g.FillRectangle(Brushes.Cyan, 75, 75, 250, 250)
g.FillRectangle(Brushes.Red, 100, 100, 200, 200)
g.FillRectangle(Brushes.Magenta, 125, 125, 150, 150)
g.FillRectangle(Brushes.Yellow, 150, 150, 100, 100)
End Sub
End Class
書いたイメージをクリックすると、その色と色を文字列に変換したものを、ラベルに表示するようになっている。
自作のメソッドを使用しないで、四角を描くところをダブらせると、上手くいくが、自作メソッド Paintsikakuを使うと、クリックしたところで、 パラメータが適切でないと、表示され、止まってしまう。ボタンを押すと、Paintsikakuを用いて、四角を表示できるのに、四角をクリックすると、止まって しまう。同じ、Pintsikakuを使用しているのに、不思議。原因不明。分る人、どうぞ、お教えください。
|