| 发表于:2007-10-15 14:25:0114楼 得分:0 |
这是我这边试的 没问题哦~ using system; using system.collections.generic; using system.componentmodel; using system.data; using system.drawing; using system.text; using system.windows.forms; namespace probation { public partial class frmmain : form { bool mouseisdown = false; rectangle mouserect = rectangle.empty; public frmmain() { initializecomponent(); this.mousedown+=new mouseeventhandler(frmmain_mousedown); this.mousemove+=new mouseeventhandler(frmmain_mousemove); this.mouseup +=new mouseeventhandler(frmmain_mouseup); } void frmmain_mouseup(object sender, mouseeventargs e) { this.capture = false; cursor.clip = rectangle.empty; mouseisdown = false; drawrectangle(); mouserect = rectangle.empty; } void frmmain_mousemove(object sender, mouseeventargs e) { if (mouseisdown) resizetorectangle(e.location); } void frmmain_mousedown(object sender, mouseeventargs e) { mouseisdown = true; drawstart(e.location); } private void resizetorectangle(point p) { drawrectangle(); mouserect.width = p.x - mouserect.left; mouserect.height = p.y - mouserect.top; drawrectangle(); } private void drawrectangle() { rectangle rect = this.rectangletoscreen(mouserect); controlpaint.drawreversibleframe(rect, color.white, framestyle.dashed); } private void drawstart(point startpoint) { this.capture = true; cursor.clip = this.rectangletoscreen(new rectangle(0, 0, clientsize.width, clientsize.height)); mouserect = new rectangle(startpoint.x, startpoint.y, 0, 0); } } } | | |
|