int flag = 0;
Point pa1, pa2;
Point pb1, pb2;
if (flag == 1)
{
pa2.X = e.X;
pa2.Y = pa1.Y + pa2.X - pa1.X;
this.Show();
Pen pen = new Pen(Color.Red, 1);
dc.DrawEllipse(pen, pa1.X, pa1.Y, pa2.X - pa1.X, pa2.Y - pa1.Y);
pen.Dispose();
}
if (flag == 2)
{
pb2.X = e.X;
pb2.Y = pb1.Y + pb2.X - pb1.X;
this.Show();
Pen pen = new Pen(Color.Blue, 1);
dc.DrawEllipse(pen, pb1.X, pb1.Y, pb2.X - pb1.X, pb2.Y - pb1.Y);
pen.Dispose();
}此段代码为什么在单独的一个Form里面就可以运行,但是当这个Form是另一个Form的子窗体时就会发生:GDI+发生一般性的错误。发生错误的地方是:dc.DrawEllipse(pen, pa1.X, pa1.Y, pa2.X - pa1.X, pa2.Y - pa1.Y);
dc.DrawEllipse(pen, pb1.X, pb1.Y, pb2.X - pb1.X, pb2.Y - pb1.Y);请各位高手指点。
Point pa1, pa2;
Point pb1, pb2;
if (flag == 1)
{
pa2.X = e.X;
pa2.Y = pa1.Y + pa2.X - pa1.X;
this.Show();
Pen pen = new Pen(Color.Red, 1);
dc.DrawEllipse(pen, pa1.X, pa1.Y, pa2.X - pa1.X, pa2.Y - pa1.Y);
pen.Dispose();
}
if (flag == 2)
{
pb2.X = e.X;
pb2.Y = pb1.Y + pb2.X - pb1.X;
this.Show();
Pen pen = new Pen(Color.Blue, 1);
dc.DrawEllipse(pen, pb1.X, pb1.Y, pb2.X - pb1.X, pb2.Y - pb1.Y);
pen.Dispose();
}此段代码为什么在单独的一个Form里面就可以运行,但是当这个Form是另一个Form的子窗体时就会发生:GDI+发生一般性的错误。发生错误的地方是:dc.DrawEllipse(pen, pa1.X, pa1.Y, pa2.X - pa1.X, pa2.Y - pa1.Y);
dc.DrawEllipse(pen, pb1.X, pb1.Y, pb2.X - pb1.X, pb2.Y - pb1.Y);请各位高手指点。
{
Graphics dc = null;
int flag = 0;
Point pa1, pa2;
Point pb1, pb2;
public draw1()
{
InitializeComponent();
dc = this.CreateGraphics();
} private void draw1_MouseDown(object sender, MouseEventArgs e)
{
flag++;
if (flag == 1)
{
pa1.X = e.X;
pa1.Y = e.Y;
}
if (flag == 2)
{
pb1.X = e.X;
pb1.Y = e.Y;
}
} private void draw1_MouseUp(object sender, MouseEventArgs e)
{
try
{
if (flag == 1)
{
pa2.X = e.X;
pa2.Y = pa1.Y + pa2.X - pa1.X;
this.Show();
Pen pen = new Pen(Color.Red, 1);
dc.DrawEllipse(pen, pa1.X, pa1.Y, pa2.X - pa1.X, pa2.Y - pa1.Y);
pen.Dispose();
}
if (flag == 2)
{
pb2.X = e.X;
pb2.Y = pb1.Y + pb2.X - pb1.X;
this.Show();
Pen pen = new Pen(Color.Blue, 1);
dc.DrawEllipse(pen, pb1.X, pb1.Y, pb2.X - pb1.X, pb2.Y - pb1.Y);
pen.Dispose();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
全部代码