WinForm--(简单的实现鼠标矩形多选框选中)
2014-04-08 16:26
288 查看
1.根据 heisetoufa 的博客 c# winform 用鼠标画拉出来的虚线框,鼠标框选边框效果 实现的一个效果
功能很粗糙,就是这么个意思,有需要再深入研究!
private void Form1_Load(object sender, EventArgs e) { panel1.MouseDown += new MouseEventHandler(MouseDown); panel1.MouseUp += new MouseEventHandler(MouseUp); panel1.MouseMove += new MouseEventHandler(MouseMove); } //定义两个变量 bool MouseIsDown = false; Rectangle MouseRect = Rectangle.Empty; //矩形(为鼠标画出矩形选区) #region mouseMove //定义三个方法 private void ResizeToRectangle(object sender, Point p) { DrawRectangle(sender); MouseRect.Width = p.X - MouseRect.Left; MouseRect.Height = p.Y - MouseRect.Top; DrawRectangle(sender); } private void DrawRectangle(object sender) { Rectangle rect = ((Panel)sender).RectangleToScreen(MouseRect); ControlPaint.DrawReversibleFrame(rect, Color.White, FrameStyle.Dashed); } private void DrawStart(object sender, Point StartPoint) { ((Panel)sender).Capture = true; Cursor.Clip = ((Panel)sender).RectangleToScreen(((Panel)sender).Bounds); MouseRect = new Rectangle(StartPoint.X, StartPoint.Y, 0, 0); } private void MouseDown(object sender, MouseEventArgs e) { MouseIsDown = true; DrawStart(sender, e.Location); } private void MouseUp(object sender, MouseEventArgs e) { this.Capture = false; Cursor.Clip = Rectangle.Empty; MouseIsDown = false; DrawRectangle(sender); MouseRect = Rectangle.Empty; } private void MouseMove(object sender, MouseEventArgs e) { if (MouseIsDown) ResizeToRectangle(sender, e.Location); foreach (Control button in ((Panel)sender).Controls) { if (MouseRect.IntersectsWith(button.Bounds)) //相交( MouseRect.Contains 完全包含) { button.BackColor = Color.Blue; } } }
功能很粗糙,就是这么个意思,有需要再深入研究!
相关文章推荐
- Qt 之 简单截图功能(一)实现鼠标选中区域截图
- 最简单的代码实现禁止鼠标右键及选中网页中的文字,支持Firefox,亲测可用
- C#,winform,gdi+,简单实现鼠标拉出虚线框,适合新手
- 超简单JS实现把鼠标选中文字发送到新浪微博
- 【简单】H5 jQuery鼠标移入移出改变图片大小动画的实现
- 实现键盘操作鼠标的简单程序
- 使用mouse事件实现简单的鼠标经过特效
- Qt:QML:ListView实现鼠标点击选中某项
- 使用mouse事件实现简单的鼠标经过特效
- javascript:从 复选框来选中俩个数值,然后从单选框按钮来选择加减乘除运算符,实现简单的计算器.
- 使用jquery实现单选框、多选框取消选中状态
- WinForm:简单实现RichTextBox加载背景图
- 2012-02-21Winform Panel控件 鼠标滚动效果实现
- 想学着实现像word excel那种,选中字体,旁边就出现字体设置的虚框,鼠标移到那里变成实框
- Qml实现对鼠标和键盘事件的简单处理
- 用canvas实现鼠标拖动绘制矩形框
- 用canvas实现鼠标拖动绘制矩形框
- jQuery里鼠标事件的一些简单实现
- 实现WinForm全球化的简单方法