Dispose 不是把目标销毁么?
代码贴上:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace Dispose销毁目标
{
    public partial class Form1 : Form
    {
        
        Point start, end;
        bool mousedown = false;
        public Form1()
        {
            InitializeComponent();
        }        private void Form1_Load(object sender, EventArgs e)
        {
            
        }        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            if (mousedown)
            {
                Bitmap bmp = new Bitmap(this.Width, this.Height);
                Graphics gr = Graphics.FromImage(bmp);
                //Graphics gr = this.CreateGraphics();
                gr.DrawRectangle(new Pen(Color.Red),start.X,start.Y,e.X-start.X,e.Y-start.Y);
                
                Graphics tg = this.CreateGraphics();
                tg.DrawImage(bmp, 0, 0);
                gr.Dispose();
                
            }
        }        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            mousedown = true;
            start = new Point(e.X, e.Y);
        }        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            mousedown = false;
            end = new Point(e.X, e.Y);
            Graphics gr = this.CreateGraphics();
            gr.DrawRectangle(new Pen(Color.Black), start.X, start.Y, end.X - start.X, end.Y - start.Y);
        }
    }
}
就是想在背景图片上画一个“橡皮”矩形啊,
能随鼠标动的那样。我创建bmp 画矩形  销毁  鼠标move  再画  上次画的依旧在啊 可是我销毁了啊怎么还有   

解决方案 »

  1.   

    你知道你动一下鼠标,mousemove 触发所少次吗
      

  2.   

    好吧  刚才实现了   .... 
    贴一下吧 
    给自己挣点可用分吧   快没了
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;namespace Dispose销毁目标
    {
        public partial class Form1 : Form
        {
            Rectangle rect = System.Windows.Forms.SystemInformation.VirtualScreen;
            Bitmap bmp;
            Point start, end;
            bool mousedown = false;
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                bmp = new Bitmap(rect.Width, rect.Height);
                Graphics g=Graphics.FromImage(bmp);
                g.CopyFromScreen(0, 0, 0, 0, bmp.Size);
                g.Dispose();
                this.BackgroundImage = bmp;
                
            }        private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                if (mousedown)
                {
                    Bitmap thisbmp = (Bitmap)bmp.Clone();
                    Graphics tg = Graphics.FromImage(thisbmp);
                    tg.DrawRectangle(new Pen(Color.Black), start.X, start.Y, e.X - start.X, e.Y - start.Y);
                    tg.Dispose();
                    Graphics g = this.CreateGraphics();
                    g.DrawImage(thisbmp, 0, 0);
                    g.Dispose();
                    
                    
                    
                }
            }        private void Form1_MouseDown(object sender, MouseEventArgs e)
            {
                mousedown = true;
                start = new Point(e.X, e.Y);
            }        private void Form1_MouseUp(object sender, MouseEventArgs e)
            {
                mousedown = false;
                end = new Point(e.X, e.Y);
                Graphics gr = this.CreateGraphics();
                gr.DrawRectangle(new Pen(Color.Blue), start.X, start.Y, end.X - start.X, end.Y - start.Y);
            }
        }
    }