• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:画面をタップしてしるしをつけたい その2)

PC用のVBでピクチャコントロールに宣言可能なイベントについて

このQ&Aのポイント
  • PC用、すなわち「Microsoft Visual Studio 2008」のVBでは、ピクチャコントロールにDim g As Graphics = PictureBox1.CreateGraphics()の宣言が可能です。これにより、MouseDowイベントでg.FillEllipse(Brushes.White, pos.X, pos.Y, 8, 8)のように「白のブラシで大きさが8の丸を描く」ことができます。
  • しかし、スマートデバイス用では同様の宣言ができません。スマートデバイス用で同様の機能を実現するための方法について教えてください。
  • スマートデバイス用でピクチャコントロールに宣言可能なイベントを作成する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

BitmapクラスなどからGraphicsオブジェクトを構築しないといけないようです ピクチャーボックスのMouseDownイベントなら   ' Imageに貼り付けるBitmapを構築   Dim bmp As New Bitmap(PictureBox1.Width, PictureBox1.Height)   ' BitmapからGraphicsを作成   Dim g As Graphics = Graphics.FromImage(bmp)   ' 背景の描画   g.FillRectangle(New SolidBrush(PictureBox1.BackColor), 0, 0, PictureBox1.Width, PictureBox1.Height)   ' タップ位置の描画   g.FillEllipse(New SolidBrush(Color.Blue), e.X, e.Y, 8, 8)   ' Graphicsを破棄 … Bitmapを切り離し   g.Dispose()   ' Imageに貼り付けて表示   PictureBox1.Image = bmp といった具合です

msaitou
質問者

お礼

ありがとうございました できました

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

Brushesクラスが使えないってことですか? ならば SolidBrushクラスで代用してみては ・・・ g.FillEllipse( new SolidBrush( Color.White ), pos.X, pos.Y, 8, 8) といった具合で

msaitou
質問者

お礼

早速のお返事ありがとうございます コードは下記です。試してみましたが 'Graphicsオブジェクトの作成 Dim g As Graphics = PictureBox1.CreateGraphics()  Dim pos As Point pos.X = e.X pos.Y = e.Y g.FillEllipse(New SolidBrush(Color.White), pos.X, pos.Y, 8, 8) g.Dispose() やはり Dim g As Graphics = PictureBox1.CreateGraphics() の部分でエラーになり、止まってしまいます どうやら、スマートデバイス用ではピクチャコントロールには 「CreateGraphics」というクラスが与えられていないようです・・ 自分で作成するしかないのでしょうか

すると、全ての回答が全文表示されます。

関連するQ&A