????????????????????????????????????????????????£???????????????????????
private void ScreenBody_DoubleClick(object sender?? EventArgs e)
{
if (((MouseEventArgs)e).Button == MouseButtons.Left &&Rect.Contains(((MouseEventArgs)e).X?? ((MouseEventArgs)e).Y))
{
//?????????к?????????......???????????????
Image memory = new Bitmap(Rect.Width?? Rect.Height);
Graphics g = Graphics.FromImage(memory);
g.CopyFromScreen(Rect.X + 1?? Rect.Y + 1?? 0?? 0?? Rect.Size);
Clipboard.SetImage(memory);
this.Close();
}
}
private void ScreenBody_MouseDown(object sender?? MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isDowned = true;
if (RectReady == false)
{
Rect.X = e.X;
Rect.Y = e.Y;
downPoint = new Point(e.X?? e.Y);
}
if (RectReady == true)
{
tmpx = e.X;
tmpy = e.Y;
}
}
if (e.Button == MouseButtons.Right)
{
if (RectReady != true)
{
this.Close();
return;
}
MainPainter.DrawImage(baseImage?? 0?? 0);
RectReady = false;
}
}
private void ScreenBody_MouseUp(object sender?? MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isDowned = false;
RectReady = true;
}
}
private void ScreenBody_MouseMove(object sender?? MouseEventArgs e)
{
if (RectReady == false)
{
if (isDowned == true)
{
Image New = DrawScreen((Image)baseImage.Clone()?? e.X?? e.Y);
MainPainter.DrawImage(New?? 0?? 0);
New.Dispose();
}
}
if (RectReady == true)
{
if (Rect.Contains(e.X?? e.Y))
{
//this.Cursor = Cursors.Hand;
if (isDowned == true)
{
//??????ε?λ???????????
Rect.X = Rect.X + e.X - tmpx;
Rect.Y = Rect.Y + e.Y - tmpy;
//????????λ??
tmpx = e.X;
tmpy = e.Y;
MoveRect((Image)baseImage.Clone()?? Rect);
}
}
}
}
private void ScreenBody_Load(object sender?? EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
MainPainter = this.CreateGraphics();
pen = new Pen(Brushes.Blue);
isDowned = false;
baseImage = this.BackgroundImage;
Rect = new Rectangle();
RectReady = false;
}