C# 鼠标移动Winform窗体内或者panel容器内的控件 显示虚线/实现虚线框来确定位置
C# 鼠标移动WinForm窗体或者panel容器内的控件 移动虚线/实现虚线框来确定位置
1.用到的方法介绍
今天,根据领导指示指导移动容器内的控件,生成虚线框,使用
- ControlPaint.DrawReversibleFrame
- //
- // 摘要:
- // 在屏幕上的指定边界内,按指定背景色绘制处于指定状态的可逆框架。
- //
- // 参数:
- // rectangle:
- // 代表要绘制矩形的尺寸的 System.Drawing.Rectangle(采用屏幕坐标)。
- //
- // backColor:
- // 框架的背景的 System.Drawing.Color。
- //
- // style:
- // System.Windows.Forms.FrameStyle 值之一,它指定框架的样式。
- public static void DrawReversibleFrame(Rectangle rectangle, Color backColor, FrameStyle style);
2.程序运行效果
3.代码实现
- public Form1()
- {
- InitializeComponent();
- }
- private Point downPoint;
- private Rectangle downRectangle;
- private Rectangle lastRectangle;
- private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
- {
- if (e.Button != MouseButtons.Left) return;
- downPoint = e.Location;
- downRectangle =new Rectangle(, , ((Control)sender).Width, pictureBox1.Height);
- downRectangle.Offset(((Control)sender).PointToScreen(new Point(, )));
- ControlPaint.DrawReversibleFrame(downRectangle, Color.White, FrameStyle.Thick);
- lastRectangle = downRectangle;
- }
- private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
- {
- if (e.Button != MouseButtons.Left) return;
- ControlPaint.DrawReversibleFrame(lastRectangle, Color.White, FrameStyle.Thick);
- Rectangle rectangle = downRectangle;
- rectangle.Offset(e.X - downPoint.X, e.Y - downPoint.Y);
- ControlPaint.DrawReversibleFrame(rectangle, Color.White, FrameStyle.Thick);
- lastRectangle = rectangle;
- }
- private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
- {
- if (e.Button != MouseButtons.Left) return;
- ControlPaint.DrawReversibleFrame(lastRectangle, Color.White, FrameStyle.Thick);
- pictureBox1.Location = new Point(
- ((Control)sender).Location.X + e.X - downPoint.X,
- ((Control)sender).Location.Y + e.Y - downPoint.Y);
- }
4.程序源代码工程文件下载
源代码工程文件下载
C# 鼠标移动Winform窗体内或者panel容器内的控件 显示虚线/实现虚线框来确定位置的更多相关文章
- winform快速开发平台 -> 快速绑定ComboBox数据控件
通常我们在处理编辑窗体时.往往会遇到数据绑定.例如combobox控件绑定数据字典可能是我们经常用到的.然而在我的winform快速开发平台中我是如何处理这个频繁的操作呢? 首先,我们要绑定combo ...
- winform中button点击后再点击其他控件致使button失去焦点,此时button出现黑色边线,去掉黑色边线的方法
winform中button点击后再点击其他控件致使button失去焦点,此时button出现黑色边线,去掉黑色边线的方法 button的FlatAppearence属性下,设置BorderSize= ...
- winform快速开发平台 -> 基础组件之分页控件
一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. ...
- [转] WinForm自定义函数FindControl实现按名称查找控件
原文地址 WinForm自定义函数FindControl实现按名称查找控件 本文所述实例实现WinForm自定义函数FindControl实现按名称查找控件的功能,在C#程序开发中有一定的实用价值. ...
- WPF背景透明内嵌WebBrowser不显示问题,即AllowsTransparency = true 和 Webbrowser 等控件显示冲突
首先感谢两位先导者: 1. 解决 WPF AllowsTransparency = true 和 Webbrowser 等控件显示冲突 原文地址:https://www.cnblogs.com/zhi ...
- winform中如何在多线程中更新UI控件--ListView实时显示执行信息
1.在winform中,所有对UI的操作,都得回到UI线程(主线程)上来,才不会报错 线程间操作无效: 从不是创建控件的线程访问它. 2.在winform中,允许通过Control.invoke对控件 ...
- winform项目中开发的一套UI控件库
https://github.com/houyhea/winform-control-lib winform-control-lib 曾经在一个winform项目中开发的一套UI控件库 类图: 效果 ...
- c#在主窗体panel 容器内嵌入另一个窗体(子窗体)的实现
主窗体: 子窗体: 把子窗体嵌入到主窗体的panel 右侧中: 代码: { public MainForm() { InitializeComponent(); } private void Clo ...
- winform导入导出excel,后台动态添加控件
思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(s ...
随机推荐
- HDU 2002 计算球体积
题目链接:HDU 2002 Description 根据输入的半径值,计算球的体积. Input 输入数据有多组,每组占一行,每行包括一个实数,表示球的半径. Output 输出对应的球的体积,对于每 ...
- 使用JfreeChart生成图表遇到的问题
生成的图片不显示 需要在web.xml中配置一个指定的Servlet <servlet> <servlet-name>DisplayChart</servlet-name ...
- Java入门学习笔记
Hello.java public class Hello { public static void main(String[] args) { System.out.println("He ...
- 如何将Powerdesign物理模型中的name复制成comment
Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl ' the current model ' get t ...
- Centos7中ss命令安装
一.简述 一般Centos会自带ss这个命令,如果没带,则需要安装. 二.安装命令 yum install iproute
- LeetCode: Gray Code [089]
[题目] The gray code is a binary numeral system where two successive values differ in only one bit. Gi ...
- Visual Studio进行Web性能测试- Part II
Visual Studio进行Web性能测试- Part II 2012-08-31 14:34 by 知平软件, 7557 阅读, 5 评论, 收藏, 编辑 原文作者:Ambily.raj 对于一个 ...
- C++ 字面量
https://docs.microsoft.com/en-us/cpp/cpp/string-and-character-literals-cpp?view=vs-2017 C++ supports ...
- 12C - PDB archive file
在unplug一个pdb的时候,如果将扩展名定义为.pdb,oracle就会创建一个.pdb归档文件.包含pdb数据文件和xml元数据文件的压缩文件.创建archive file之后,就不用分开拷贝数 ...
- 【转载】springboot四 全局异常处理
http://tengj.top/2018/05/16/springboot13/ https://www.jb51.net/article/110533.htm