C# DragDrop 事件 无法触发 解决办法
在WIn7、8、10系统上,我们想要为控件添加拖放事件,使用DragDrop事件发现无法触发现象,这是由于系统UAC权限导致的
这里我以ListView控件举例,解决办法:
第一步:设置 AllowDrop 属性
ListView.AllowDrop = true;
第二步:为 ListView 添加拖放事件
//当拖放数据进入控件时触发的事件
ListView.DragOver += new DragEventHandler(ListView_DragOver);
//当拖放数据操作完成时触发的事件
ListView.DragDrop += new DragEventHandler(ListView_DragDrop);
第三步:创建第二步事件方法代码
/// <summary>
/// 把文件拖到列表框边界时发生的事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ListView_DragOver(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.All;
}
/// <summary>
/// 列表框文件拖放操作完成时事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ListView_DragDrop(object sender, DragEventArgs e)
{
//获取拖放数据,如果拖放对象为文件(文件夹)
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] FileArray = (string[])e.Data.GetData(DataFormats.FileDrop);
for (int i = 0; i < FileArray.Length; i++)
{
//这是获得的文件路径,请自行应用
String FilePath = content[i];
}
}
}
4484

被折叠的 条评论
为什么被折叠?



