.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
随机推荐
- AngularJS 实现购物车全选反选功能
- codeigniter框架批量插入数据
- Asp.Net 通用数据操作类 (附通用数据基类)第1/2页
- TinyMCE syntaxhl插入代码后换行的修改方法
- jquery中EasyUI使用技巧小结
- math.vbs 自然数n的n次方的的和或积的级数
- C#实现读取DataSet数据并显示在ListView控件中的方法
- 整理Python最基本的操作字典的方法
- 用JAVASCRIPT帮我写个计数器
- java多线程详细总结
- javascript编程起步(第七课)
- Android实现简洁的APP登录界面
- PHP实现判断数组是一维、二维或几维的方法
- php xml 入门学习资料
- Python实现excel转sqlite的方法
- jQuery使用addClass()方法给元素添加多个class样式
- MUI Scroll插件的使用详解
- 基于jquery的让textarea自适应高度的插件
- Win2003 IIS 6.0 假死问题解决方法 图文教程
- java中的快捷键小结