C# Code 開啟拖放功能
拖放效果 以系統管理員身分執行
// 從控件內複製出來
imageListView1.AllowDrag = true;
// 拖曳進去控件
imageListView1.AllowDrop = true;
拖放效果 以系統管理員身分執行
根據 ImageListView 官方提供測試程式,確實只要開啟 AllowDrop 和 AllowDrag 就可以使用檔案拖放功能,但是整理範例筆記時發現,竟然只能使用 drag,drop 無法使用,追究原因發現,原來我開啟 VS 是以系統管理員身分執行,新專案在提高權限後的安全性和 Windows 安全性不一致而無法把檔案拖放進 ImageListView 內,詳見 MS 官方文件說明 - Q: Why Doesn’t Drag-and-Drop work when my Application is Running Elevated? – A: Mandatory Integrity Control and UIPI,該限制跟 ImageListView 無關,即使是 WinForm 標準控件,也會有該限制
要避免安全性不一致導致無法進行 drop,可以參考該文章內的 Code - WinForm中管理员权限下获取拖拽文件路径的解决方案
- 延伸閱讀
- [C#] ImageListView
- 參考資料
- 論壇討論 1、2
- Win7下的DragDrop事件不触发?
沒有留言:
張貼留言