【发布时间】:2014-10-04 20:59:57
【问题描述】:
我有一个看起来很像 Windows 中的旧画图的小应用程序。我使用图片框 Paint 事件实现了所有的 Graphic。唯一的问题是,当我单击此按钮时,会出现一个颜色对话框,让我更改笔的颜色。但是每当我单击按钮时,该框永远不会出现,并且我的程序卡在 Paint 事件中,最准确地说是在我执行以下操作的那一行:
pictureBox1.Image = bmp;
我做错了什么?拜托,我将不胜感激!
我希望下面的代码 sn -p 就足够了。
这是我的图片框绘制事件:
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
using(Graphics g = Graphics.FromImage(bmp))
{
if (lineButton && mouseIsUp)
{
g.DrawLine(myPen, mAnchorPoint, mFinalPoint);
mAnchorPoint = Point.Empty;
mFinalPoint = Point.Empty;
}
pictureBox1.Image = bmp;
}
}
这是当我想改变我的笔颜色时触发的按钮事件:
private void ColorButton_Click(object sender, EventArgs e)
{
ColorDialog cd = new ColorDialog();
if (cd.ShowDialog() == DialogResult.OK)
{
myPen.Color = cd.Color;
}
}
【问题讨论】:
-
pictureBox1.Image = bmp; 调用 pictureBox1_Paint,一个无休止的循环。