@#@#@#@#@#@求助:拖拽过程中CURSOR变化问题@#@#@#@#@#@

zhoujijunnt 2006-07-25 10:31:23


一个郁闷的问题:界面上有一个treeview,一个listview,现在从listview中拖拽一个item到treeview中,拖拽的过程中 CURSOR要求变成该item的image样式。

我的代码为: Me.Cursor = New Cursor("track.ico")
(该图片文件能够取到)

我把代码加到listview的ItemDrag事件,效果是当item被拖拽时cursor并不发生改变,而是当在目的地释放左键后才改变。

在MouseDown,MouseMove等事件中经过判断后改变cursor也不能有正确效果,已经郁闷好久了。

各位达人多多赐教。
...全文
379 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoujijunnt 2006-07-25
  • 打赏
  • 举报
回复
问题已解决,多谢liangxf0022提供的方法!
zhoujijunnt 2006-07-25
  • 打赏
  • 举报
回复
To:liangxf0022
哥们,能说的具体点吗?我用了你的方法,拖动的时候的确可以变了,但是有点小问题,就是当我拖动操作半途而废时,就是拖到一半,又释放了鼠标,此时鼠标还在在当前控件中,这时候cursor也会变掉,再帮看一下好吗?分不会少给的!
xlshen_lxz 2006-07-25
  • 打赏
  • 举报
回复
上面那位好强。。。帮顶
liangxf0022 2006-07-25
  • 打赏
  • 举报
回复
搂主,你应该改变GiveFeedback事件中的e.UseDefaultCursors,如果在拖动过程中你可能要用到几个API,

public class DragHelper
{
[DllImport("comctl32.dll")]
public static extern bool InitCommonControls();

[DllImport("comctl32.dll", CharSet=CharSet.Auto)]
public static extern bool ImageList_BeginDrag(IntPtr himlTrack, int
iTrack, int dxHotspot, int dyHotspot);

[DllImport("comctl32.dll", CharSet=CharSet.Auto)]
public static extern bool ImageList_DragMove(int x, int y);

[DllImport("comctl32.dll", CharSet=CharSet.Auto)]
public static extern void ImageList_EndDrag();

[DllImport("comctl32.dll", CharSet=CharSet.Auto)]
public static extern bool ImageList_DragEnter(IntPtr hwndLock, int x, int y);

[DllImport("comctl32.dll", CharSet=CharSet.Auto)]
public static extern bool ImageList_DragLeave(IntPtr hwndLock);

[DllImport("comctl32.dll", CharSet=CharSet.Auto)]
public static extern bool ImageList_DragShowNolock(bool fShow);

static DragHelper()
{
InitCommonControls();
}
}
zhoujijunnt 2006-07-25
  • 打赏
  • 举报
回复
自己顶。顶者有分!!!
yuesongboy 2006-07-25
  • 打赏
  • 举报
回复
顶~~~

111,095

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧