c#在pictureBox上剪切图片问题
剪切图片功能实现了,剪切方法是用鼠标点击,向下拖动形成一个矩形框。但有些小问题。
1.如何实现鼠标向上拖动功能禁用,即向上拖动后什么也不做(目前向上拖动后,会导致程序错误)
2.如何设置鼠标拖动后矩形框的颜色。(我现在设置的,但矩形框没有颜色,透明的)
鼠标代码如下:
- C# code
//定义鼠标事件 private void pictureBox1_MouseDown_1(object sender, MouseEventArgs e) { this.Cursor = Cursors.Cross; this.p1 = new Point(e.X, e.Y); } private void pictureBox1_MouseUp_1(object sender, MouseEventArgs e) { this.Cursor = Cursors.Default; this.p2 = new Point(e.X, e.Y); } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { if (this.Cursor == Cursors.Cross) { this.p2 = new Point(e.X, e.Y); this.pictureBox1.Invalidate(); } } //定义鼠标事件 private void pictureBox1_Paint_1(object sender, PaintEventArgs e)//在图片框画图 { Pen p = new Pen(Color.Black, 1);//画笔 p.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; Rectangle rect = new Rectangle(p1, new Size(p2.X - p1.X, p2.Y - p1.Y)); e.Graphics.DrawRectangle(p, rect); }
[解决办法]
你首先要知道那部分代码报错,根据错误提示,自己去找原因
至于颜色,你的知道什么是向上,向下,自己根据方向设置brush的颜色啊
[解决办法]
报错嘛多半就是坐标相加之后得到负值了嘛。
在print里面先判断一下计算过的坐标是否符合逻辑,不符合就不做修改
至于你说的颜色问题,这个需要在MouseMove里面写draw,边拖边画一个带颜色的矩形。
[解决办法]
1.直接设成向上拖动其实不合理,你完全可以处理成向上向下都可以选择的,对首尾两个点大小比较然后取一下就行了。
2.可以通过设置画笔来实现啊。