移动g.drawstring' x'已经在picturebox上创建的

时间:2014-07-01 01:02:44

标签: c#

我正试图移动' x'这些代码创建的。我需要添加什么才能使' x'能够再次移动吗?如果它不在我想要它的位置。

using (Graphics g = Graphics.FromHwnd(pictureBox1.Handle))
{
    using (Font myFont = new Font("Calibri", 8))
    {
        g.DrawString("X", myFont, Brushes.Red, new PointF(e.X, e.Y));
    }
}

1 个答案:

答案 0 :(得分:0)

不要使用FromHwnd创建Graphics对象。处理图片框的Paint事件。在那里做所有的绘画(使用e.Graphics)。

当你想要"移动" X,更改paint方法查看的一些变量,并在图片框上调用Refresh。

这是一个简单的例子:

private int posX = 10;
private int posY = 10;
private Font font = new Font("Calibri", 8);

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    e.Graphics.DrawString("x", font, Brushes.Black, posX, posY);
}

private void pictureBox1_Click(object sender, EventArgs e)
{
    posX += 10;
    posY += 10;
    pictureBox1.Refresh();
}