.NET運(yùn)行界面上,實(shí)現(xiàn)隨意拖動(dòng)控件的方法
using System.Windows.Forms;
namespace WinFormsApp_DragControls
{
public class DragControl
{
//待拖動(dòng)的控件
private Control m_Control;
//鼠標(biāo)按下時(shí)的x,y坐標(biāo)
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;
}
}
}
}
調(diào)用:
DragControl obj1 = new DragControl(button1);
則表示在運(yùn)行的界面上,支持隨意拖動(dòng)button1
另外還可以進(jìn)一步實(shí)現(xiàn)改變控件大小、GDI+實(shí)現(xiàn)加邊界腳點(diǎn)、保存控件的位置到xml下次可以讀取(布局)以及自動(dòng)布局N個(gè)Control的算法等,想進(jìn)一步了解可與本人聯(lián)系,此處不多敘述..
相關(guān)文章
菜渣開源一個(gè)基于?EMIT?的?AOP?庫(.NET?Core)的方法
CZGL.AOP?是?基于?EMIT?編寫的?一個(gè)簡(jiǎn)單輕量的AOP框架,支持非侵入式代理,支持.NET?Core/ASP.NET?Core,以及支持多種依賴注入框架,本文介紹菜渣開源一個(gè)基于?EMIT?的?AOP?庫(.NET?Core)的相關(guān)知識(shí),感興趣的朋友一起看看吧2024-06-06
asp.net core 多文件分塊同時(shí)上傳的組件
分享一個(gè)可多個(gè)文件同時(shí)上傳、斷點(diǎn)續(xù)傳,并實(shí)時(shí)反饋上傳進(jìn)度的 Asp.Net core 組件,本文通過實(shí)例代碼對(duì)asp.net core 多文件分塊同時(shí)上傳的組件知識(shí)介紹的非常詳細(xì),感興趣的朋友一起看看吧2023-12-12
.net前臺(tái)調(diào)用后臺(tái)函數(shù)的簡(jiǎn)單實(shí)例
這篇文章介紹了.net前臺(tái)調(diào)用后臺(tái)函數(shù)的簡(jiǎn)單實(shí)例,有需要的朋友可以參考一下2013-09-09
.net中string類型可以作為lock的鎖對(duì)象嗎
lock 關(guān)鍵字是用于在多線程編程中實(shí)現(xiàn)同步和互斥訪問的關(guān)鍵字,它的作用是確保共享資源在任意時(shí)刻只能被一個(gè)線程訪問,從而避免出現(xiàn)競(jìng)態(tài)條件(race condition)和數(shù)據(jù)不一致的問題,這篇文章主要介紹了string類型可以作為lock的鎖對(duì)象嗎,需要的朋友可以參考下2023-06-06
JQuery為用戶控件(ASCX)賦值與接口的應(yīng)用
在網(wǎng)頁動(dòng)態(tài)加載用戶控件,并使用JQuery為來把網(wǎng)頁處理的值傳給用戶控件,此文利用了接口方面的知識(shí),感興趣的各位可以參考下哈2013-03-03

