2009-05-03 7 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 유형의)라는 속성이 있습니다.

관련 문제