У меня есть небольшое приложение, которое очень похоже на старую краску из Windows. Я выполнил всю графику, используя событие Paint Box. Единственная проблема заключается в том, что когда я нажимаю эту кнопку, появляется диалоговое окно «Цвет» и позволяю мне менять цвет моего пера. Но всякий раз, когда я нажимаю кнопку никогда не появляется окно и моя программа застревает в случае краски, наиболее точно на линии, где я сделать следующее:Диалоговое окно цвета не отображается
pictureBox1.Image = bmp;
Что я делаю неправильно? Пожалуйста, я буду признателен за любую помощь!
Я надеюсь, что следующего фрагмента кода достаточно.
Это мое событие PictureBox Paint:
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 *, бесконечный цикл. –