绘制表单图形到picturebox

时间:2014-05-30 10:42:44

标签: c# visual-studio picturebox

我不知道如何正确解释,但也许代码会更清晰。 title1_BoxPictureBox,我试图绘制矩形项目'进入title1_BoxRect是包含矩形的列表。

这可能是愚蠢的事。我是编程新手。 提前谢谢。

private void UpdateTiles(string path)
{
    Image imgsrc = Image.FromFile(@path);
    Image imgdst = new Bitmap(imgsrc.Width / 2, imgsrc.Height);
    using (Graphics gr = Graphics.FromImage(imgdst))
    { 
        for (int imgIndex = 0; imgIndex <= imgsrc.Width / 32; imgIndex++)
        {
            rects.Add(new Rectangle((imgIndex * 32), 0,
                (32 + (imgIndex * 32)), 32));
        }
        foreach (Rectangle item in rects)
        {
             gr.DrawImage(imgsrc,
                item);
             tile1_Box.RectangleToScreen(item);
        }
    }
}

2 个答案:

答案 0 :(得分:0)

您需要从Paint事件中调用此事件,并将 Graphics对象传递到您的函数中:

private void title1_Box_Paint(object sender, PaintEventArgs e)
{   UpdateTiles(e.Graphics, path);  }

private void UpdateTiles(Graphics gr, string path)
{
 //.. now you gr instead of any local Graphics..!!

你也应该做一个

title1_Box.Invalidate();

到目前为止,您调用 UpdateTiles 的地方。只要Windows检测到需要重新绘制,Thuis就会调用Paint事件,同时需要被调用。

答案 1 :(得分:0)

您可以直接从picterBox实例创建Graphic类实例:

Graphics gr = title1_Box.CreateGraphics();

使用gr进行的操作将在title1_Box中进行,因此您现在可以直接绘制到您的pictureBox中。