C#鼠标拖动任意控件(winform)
2011-08-15 22:51
555 查看
using System.Runtime.InteropServices;
//并为控件 添加 MouseDown 事件
// C#鼠标拖动任意控件
// 利用Windows的API函数:SendMessage 和 ReleaseCapture
const uint WM_SYSCOMMAND = 0x0112;
const uint SC_MOVE = 0xF010;
const uint HTCAPTION = 0x0002;
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern int SendMessage(IntPtr hwnd, uint wMsg, uint wParam, uint lParam);
[DllImport("user32.dll")]
private static extern int ReleaseCapture();
void ControlMouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
SendMessage((sender as Control).Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
}
//并为控件 添加 MouseDown 事件
// C#鼠标拖动任意控件
// 利用Windows的API函数:SendMessage 和 ReleaseCapture
const uint WM_SYSCOMMAND = 0x0112;
const uint SC_MOVE = 0xF010;
const uint HTCAPTION = 0x0002;
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern int SendMessage(IntPtr hwnd, uint wMsg, uint wParam, uint lParam);
[DllImport("user32.dll")]
private static extern int ReleaseCapture();
void ControlMouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
SendMessage((sender as Control).Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
}
相关文章推荐
- 通过鼠标任意拖动.NET Winform窗体中的控件
- 通过鼠标任意拖动.NET Winform窗体中的控件
- [转]C#鼠标拖动任意控件
- 通过鼠标任意拖动.NET Winform窗体中的控件
- C#鼠标任意拖动PictureBox等控件(使用API ReleaseCapture SendMessage)
- 通过鼠标任意拖动.NET Winform窗体中的控件
- [VB.net][WinForm]Panel控件移动\鼠标拖动
- C#(Winform)禁用TextBox控件的鼠标事件
- 在运行时通过鼠标拖动移动控件位置(c#)
- C#鼠标拖动控件改变位置并绘制虚框
- C# WinForm 鼠标左键拖动窗体
- C#实现Winform鼠标拖动窗口大小时设定窗口最小尺寸的方法
- .net,C#如何在运行时通过鼠标拖动改变控件的大小
- Winform鼠标拖动改变控件大小、移动控件位置
- C#鼠标拖动控件改变位置并绘制虚框
- C#基础系列:开发自己的窗体设计器(在容器上拖动鼠标增加控件)
- c#可以创建任意控件的拖动
- C#winform 控件鼠标落下变色,鼠标挪开恢复原色
- 点击button按钮后,启动一个实现鼠标拖动另一个button的线程 (JFrame/C# WinForm)
- C#基础系列:开发自己的窗体设计器(在容器上拖动鼠标增加控件)