.NET运行界面上,实现随意拖动控件的方法
using System.Windows.Forms;
namespace WinFormsApp_DragControls
{
public class DragControl
{
//待拖动的控件
private Control m_Control;
//鼠标按下时的x,y坐标
private int m_X;
private int m_Y;
public DragControl(Control control)
{
m_Control = control;
m_Control.MouseDown += new MouseEventHandler(control_MouseDown);
m_Control.MouseMove += new MouseEventHandler(contro_MouseMove);
}
private void control_MouseDown(object sender, MouseEventArgs e)
{
m_X = e.X;
m_Y = e.Y;
}
private void contro_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
int x = e.X - m_X;
int y = e.Y - m_Y;
this.m_Control.Left += x;
this.m_Control.Top += y;
}
}
}
}
调用:
DragControl obj1 = new DragControl(button1);
则表示在运行的界面上,支持随意拖动button1
另外还可以进一步实现改变控件大小、GDI+实现加边界脚点、保存控件的位置到xml下次可以读取(布局)以及自动布局N个Control的算法等,想进一步了解可与本人联系,此处不多叙述..
相关推荐
-
.NET运行界面上,实现随意拖动控件的方法
复制代码 代码如下: using System.Windows.Forms; namespace WinFormsApp_DragControls { public class DragControl { //待拖动的控件 private Control m_Control; //鼠标按下时的x,y坐标 private int m_X; private int m_Y; public DragControl(Control control) { m_Co
-
WinForm实现鼠标拖动控件跟随效果
本文实例为大家分享了WinForm实现鼠标拖动控件跟随效果的具体代码,供大家参考,具体内容如下 1. 运行初始窗口如下: 2. 拖动后效果如下: 3. 代码如下: public partial class Form1 : Form { /* * 理解了下面的几个概念,就能完全明白相对坐标的变化. * MouseEventArgs e 为事件鼠标参数,因此,e.Location 指示了位于事件源上的光标坐标 * Cursor.Position 获取的是相对于用户屏幕的光标坐标 * PointToC
-
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
PyQt5动态(可拖动控件大小)布局控件QSplitter简介 PyQt还提供了特殊的布局管理器QSplitter.它可以动态地拖动子控件之间的边界,算是一个动态的布局管理器,QSplitter允许用户拖动子控件的边界控制子控件的大小,并提供一个处理拖曳子控件的控制器 在QSplitter对象中各子控件默认是横向布局的,可以使用Qt,Vertical进行垂直布局 QSplitter类中常用的方法 方法 描述 addWidget() 将小控件添加到QSplitter管理器的布局中 indexOf(
-
Android中SeekBar拖动条控件使用方法详解
SeekBar拖动条控件使用方法,具体内容如下 一.简介 1. 二.SeekBar拖动条控件使用方法 1.创建SeekBar控件 <SeekBar android:id="@+id/SeekBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:progress="30" /> 2.添加setOn
-
C#多线程与跨线程访问界面控件的方法
本文实例讲述了C#多线程与跨线程访问界面控件的方法.分享给大家供大家参考.具体分析如下: 在编写WinForm访问WebService时,常会遇到因为网络延迟造成界面卡死的现象.启用新线程去访问WebService是一个可行的方法. 典型的,有下面的启动新线程示例: 复制代码 代码如下: private void LoadRemoteAppVersion() { if (FileName.Text.Trim() == "") return; StatusLabel
-
Android ScrollView只能添加一个子控件问题解决方法
本文实例讲述了Android ScrollView只能添加一个子控件问题解决方法.分享给大家供大家参考,具体如下: 有下面一段代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent
-
.Net遍历窗体上控件的方法
本文实例讲述了.Net遍历窗体上控件的方法.分享给大家供大家参考.具体分析如下: 本例实现遍历窗体上的控件以及找出TextBox控件,代码如下: 复制代码 代码如下: foreach( Control control in this.Controls ) { if( control is TextBox ) //判断是否是TextBox控件 { //TODO... TextBox textBox=control; //里氏转换
-
ASP.NET动态添加用户控件的方法
本文实例讲述了ASP.NET动态添加用户控件的方法.分享给大家供大家参考.具体实现方法如下: 为了让用户控件能ASP.NET页面实现动态添加,首先写一个接口IGetUCable,这个接口有一个函数,返回对象类型是UserControl. using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; /// <summary> /// Summar
-
WPF中引入WindowsForms控件的方法
本文实例讲述了WPF中引入WindowsForms控件的方法.分享给大家供大家参考,具体如下: 环境: [1]WindowsXP with SP3 [2]VS2008 with SP1 正文: Step1:在现有工程中引入Windows Forms 鼠标右键[References]->选择[Add Reference]->[.NET]标签页 加入[WindowsFormsIntegration]和[System.Windows.Forms]两项 Step2:在XAML文件里加入 [S2-1]加
-
Android中CheckBox复选框控件使用方法详解
CheckBox复选框控件使用方法,具体内容如下 一.简介 1. 2.类结构图 二.CheckBox复选框控件使用方法 这里是使用java代码在LinearLayout里面添加控件 1.新建LinearLayout布局 2.建立CheckBox的XML的Layout文件 3.通过View.inflate()方法创建CheckBox CheckBox checkBox=(CheckBox) View.inflate(this, R.layout.checkbox, null); 4.通过Linea
随机推荐
- Android动态自定义圆形进度条
- 通过下拉框的值来确定输入框是否可以为空的代码
- AngularJS 工作原理详解
- 看到一个JS正则的题
- 一个可以显示c盘-z盘的批处理bat文件
- 在Java的Struts框架中ONGL表达式的基础使用入门
- Oracle数据库中基本的查询优化与子查询优化讲解
- 建立自定义的数据驱动的本地化资源provider
- php实现将二维关联数组转换成字符串的方法详解
- 在Nginx中增加对OAuth协议的支持的教程
- MySQL安全策略(MySQL安全注意事项)
- gulp-htmlmin压缩html的gulp插件实例代码
- 浏览器解析js生成的html出现样式问题的解决方法
- Android性能优化之利用Rxlifecycle解决RxJava内存泄漏详解
- 关于JavaScript的单双引号嵌套问题
- C#+MO实现一些渲染功能
- PHP封装的多文件上传类实例与用法详解
- 使用Python生成Shell命令,批量执行程序代码解析
- android 使用XStream解析xml的实例
- vue cli webpack中使用sass的方法