.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
随机推荐
- Oracle参数设置教程之set和reset的实用案例
- cemtos 7 linux 安装与卸载 tomcat 7的教程
- iOS中多网络请求的线程安全详解
- Vue.js动态添加、删除选题的实例代码
- iOS中tableview实现编辑、全选及删除等功能的方法示例
- KVM虚拟机的创建、管理与迁移介绍
- 具有时效性的php加密解密函数代码
- Android 中ListView和GridView赋值错位
- MySql 5.7.14 服务没有报告任何错误的解决方法(推荐)
- JavaScript中定义对象原型的两种使用方法
- AJax与Jsonp跨域访问问题小结
- 深入理解javascript严格模式(Strict Mode)
- CSS代码格式化和压缩的方法与技巧
- jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
- jQuery获取Table某列的值(推荐)
- jquery json 实例代码
- JavaScript函数柯里化详解
- winform 实现选择文件和选择文件夹对话框的简单实例
- python逆向入门教程
- C++稀疏矩阵的各种基本运算并实现加法乘法