怎么样才能用C#实现像Windows那样的拖动效果呀?
现在窗口内的拖动功能已经实现,主要是半透明图标如何跟随鼠标移动和跨窗口拖动(就跟Windows中从一个文件夹拖动到另一个文件夹或桌面上一样)。
就像在Windows中选中一个或多个文件拖动时有半透明的图标跟随鼠标移动,松开鼠标时把拖着的东西放到松开时的位置。如在我的项目中有两个窗口,窗口A中有一个image,如何能把它拖动到窗口B中,并且拖动时有半透明图标跟随鼠标的效果,当然在此处是image跟随鼠标
现在窗口内的拖动功能已经实现,主要是半透明图标如何跟随鼠标移动和跨窗口拖动(就跟Windows中从一个文件夹拖动到另一个文件夹或桌面上一样)。
就像在Windows中选中一个或多个文件拖动时有半透明的图标跟随鼠标移动,松开鼠标时把拖着的东西放到松开时的位置。如在我的项目中有两个窗口,窗口A中有一个image,如何能把它拖动到窗口B中,并且拖动时有半透明图标跟随鼠标的效果,当然在此处是image跟随鼠标
解决方案 »
- 静态类静态构造函数 静态变量 执行顺序问题 谁帮忙解释下
- 如果解决WIN7下:应用程序试图执行安全策略不允许的操作
- C#后台捕捉按键的问题。。
- c# 如何实现将Excel文件以二进制形式存储到sql2000
- 如何取datagridview行的状态(add,modiff,delete)
- 高分请教高手:DataList嵌套checkboxlist全选问题.
- 请问一个字符串转换成byte数组的问题。
- WPF DataTrigger的奇怪问题
- 新手求助 c# Excel WorkBooks.Open 提示不能访问XX.xls
- c#登录
- C#怎么限制文本框只能输入数字???
- Cdma modem 中文短信乱码怎么解决啊
private const int SC_MOVE = 0xF012;
private const int WM_SysCommand = 0x0112;
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(int hWnd, int wMsg, int wParam, int lParam);
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "ReleaseCapture")]
private static extern int ReleaseCapture();
if (WindowState == FormWindowState.Normal)
{
ReleaseCapture();
SendMessage(this.Handle.ToInt32(), WM_SysCommand, SC_MOVE, 0);
}
这个不知道行不行呢~~
下面是移动一个按钮.
private void button1_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();
SendMessage(this.button1.Handle.ToInt32(), WM_SysCommand, SC_MOVE, 0); }
其实简单,你拖过去的是一个图片地址,那边接收的也是一个图片地址,于是用这个创建一个新的image,
放在新的图片框中就行了。
这个似乎我做过0 0。。