2009-05-03 12 views
0
private void pictureBox1_MouseDown(object sender, MouseEventArgs e) 
    { 
     NumberOfBets++; 

     if ((e.X >= 40 && e.X <= 125) && (e.Y >= 0 && e.Y <= 26)) 
     { 
      bettingStatus[0]++; 
      for (int x; x < 10; x++) 
      { 
       Graphics graphic = (???) 
      } 
     } 

このMouseDownメソッドで画像を描画しようとしています。私は「(???)」の部分に何が入っているかわからない。この方法で画像を描画しますか?

Graphics graphic = pictureBox1.CreateGraphics(); 

を...しかし、あなたはMouseDownイベントハンドラで描画されるようによろしいです:

答えて

0

あなたはあなたのケースではどこからGraphics、おそらくpictureBox1を取得する必要がありますか?パーツが再描画された場合は再描画されません。おそらくPaintイベントハンドラですべての描画を行い、代わりにMouseDownにフラグを設定する方が良いでしょう。次に、再描画する領域を無効にして、新しいイメージを描画します。

それとも、あなたのイメージはより静的であることを行っている場合、あなたはその上に描画、Bitmapを作成することができ、その後、代わりにBitmapを指すようにPictureBoxImageを設定します。たとえば:

Bitmap bmp = new Bitmap(200, 100); 
Graphics graphics = Graphics.FromImage(bmp); 
//do drawing here 
pictureBox1.Image = bmp; 
1
// Create a Graphics object for the pictureBox1 control. 
Graphics g = pictureBox1.CreateGraphics(); 

は続きを読む:MSDN: Graphics Class

そうでない場合、コントロールが再描画されている場合、あなたはあなたの図面を失うことになるので、あなたは、Paintイベントで描画する必要があります。 Paintイベントハンドラに渡されるPaintEventArgsには、描画可能なGraphics(System.Drawing.Graphicsタイプの)という名前のプロパティがあります。

関連する問題