日期:2014-05-17  浏览次数:20841 次

Win7下的DragDrop事件不触发 兄弟们速度看看有什么问题
Winform 下设置UAC的权限为<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 这时 主窗体的拖放事件不激发 在网上说加入下边的代码就能有消息的回调 但是自己新建工程 还是不能激发DragEnter/DragOver/DragDrop

[DllImport("user32", SetLastError = true)]
        public static extern bool ChangeWindowMessageFilter(uint msg, ChangeWindowMessageFilterFlags flags);
        public enum ChangeWindowMessageFilterFlags : uint
        {
            Add = 1, Remove = 2
        };

 bool result = ChangeWindowMessageFilter(WM_DROPFILES, ChangeWindowMessageFilterFlags.Add);
            bool result1 = ChangeWindowMessageFilter(WM_COPYDATA, ChangeWindowMessageFilterFlags.Add);
            bool result2 = ChangeWindowMessageFilter(0x0049, ChangeWindowMessageFilterFlags.Add);
winform

------解决方案--------------------
AllowDrop = true;
------解决方案--------------------
AllowDrop 可能是一个原因,
但很有可能是UAC原因,我原来碰到过类似的问题,是因为不同用户之间的内容不可以Drag,如果你用user登录,但用administrator启动程序,从user桌面drag内容到程序,Drop就不会被接收,
希望可以帮到楼主
------解决方案--------------------
关闭UAC,或者使用同一个用户启动