>
img = Image.FromFile(@"images\dcw.png");
Graphics g = tabPanl.GetControlFromPosition(1, 1).CreateGraphics();
g.DrawImage(img,
      new Rectangle(0, 0, 50, 50),
      new Rectangle(img.Width / 2 - 25, img.Height / 2 - 25, 50, 50),
      GraphicsUnit.Pixel);

PictureBox (양식에만 배치)에서이 작업을 수행하면 제대로 작동하지만 TableLayoutPanel 내부에서는 작동하지 않습니다

도 시도했습니다

       Image img = Image.FromFile(@"images\dcw.png");
        int picBoxIndex = tabPanl.Controls.GetChildIndex(picBox1x1);
        Graphics g = tabPanl.Controls[picBoxIndex].CreateGraphics();
        g.DrawImage(img,
            new Rectangle(0, 0, 50, 50),
            new Rectangle(img.Width / 2 - 25, img.Height / 2 - 25, 50, 50),
            GraphicsUnit.Pixel);

도 시도했습니다

       Image img = Image.FromFile(@"images\dcw.png");
        Graphics g = picBox1x1.CreateGraphics();
        g.DrawImage(img,
            new Rectangle(0, 0, 50, 50),
            new Rectangle(img.Width / 2 - 25, img.Height / 2 - 25, 50, 50),
            GraphicsUnit.Pixel);

그래야 겠어

런타임에 그래픽을 그리는 보드 게임을 만들려고 시도-플레이어 선택에 따라 다른 이미지

thx Tony

  • 답변 # 1

    실제로 그리지 만 Paint  이벤트가 지 웁니다. 지속성을 유지하려면 PictureBox의 Paint 이벤트에 코드를 추가해야합니다.

    Image img = Image.FromFile(@"images\dcw.png");
     int picBoxIndex = tabPanl.Controls.GetChildIndex(picBox1x1);
    tabPanl.Controls[picBoxIndex].Paint += (s,e) =>{
       e.Graphics.DrawImage(img,
                new Rectangle(0, 0, 50, 50),
                new Rectangle(img.Width / 2 - 25, img.Height / 2 - 25, 50, 50),
                GraphicsUnit.Pixel);
    };
    
    

    그러나 PictureBox.BackgroundImage 속성을 사용하지 않는 이유는 무엇입니까?

  • 답변 # 2

    음, (Image)의 정의 된 부분을 넣을 수 없기 때문에 BackgroundImage를 사용하지 않았습니다. 이 backgroudimage 내부의 이미지;이것도 저의 생각이었습니다.하지만 그 문제도 처리 할 수 ​​없었습니다

    지금까지 Paint-Event로 시도해보십시오.->잘 작동했습니다.

  • 이전 c# - 데이터 테이블 목록을 통해 학습하는 방법은 무엇입니까?
  • 다음 python - typeerror - list 객체가 반복자가 아닙니다