public partial class UserControl1 : WebBrowser
{
private const int WmDropfiles = 0x233; [DllImport("shell32.dll")]
private static extern uint DragQueryFile(IntPtr hDrop, uint iFile, StringBuilder lpszFile, uint cch); [DllImport("shell32.dll")]
private static extern void DragAcceptFiles(IntPtr hWnd, bool fAccept); protected override void OnHandleCreated(EventArgs e)
{
base.OnHandleCreated(e); //指示接受文件拖放操作
if (!DesignMode)
{
DragAcceptFiles(Handle, true);
}
} protected override void WndProc(ref Message m)
{
if (m.Msg == WmDropfiles)
{
#region 解析消息
//获取拖放的文件数量
var count = DragQueryFile(m.WParam, 0xffffffff, null, 0);
//解析所有播放的文件路径
var filePaths = new string[count];
for (uint i = 0; i < count; i++)
{
var sb = new StringBuilder();
DragQueryFile(m.WParam, i, sb, 1024);
filePaths[i] = sb.ToString();
}
#endregion //是否继续触发之后的消息处理
var isCancel = false; #region 触发自定义文件拖放事件
if (DragFile != null)
{
var args = new DragFileEventArgs(filePaths);
DragFile(this, args);
isCancel = args.IsCancel;
}
#endregion if (isCancel) return;
}
base.WndProc(ref m);
} public event EventHandler<DragFileEventArgs> DragFile; public class DragFileEventArgs : EventArgs
{
private readonly string[] _filePaths;
public bool IsCancel { get; set; } public DragFileEventArgs(string[] filePaths)
{
_filePaths = filePaths;
} public string[] FilePaths
{
get { return _filePaths; }
}
}
}

  

扩展WebBrowser控件,使其支持拖放文件的更多相关文章

  1. WebBrowser控件应用:播放PPT文件

    原文:WebBrowser控件应用:播放PPT文件 一开始想的是用webform来做,用iframe加载文件,把ppt文件另存成htm,然后播放. 可是后来发现,的程序不大容易控制,所以改用winfo ...

  2. webbrowser控件使用时的注意事项

    如果HtmlElement内的没有信息,则HtmlElement的OuterText属性值为null:OuterHtml属性值则为相应的html值 如果使用OuterText属性,使用前要判断下.

  3. C# Winform WebBrowser控件

    C# WinForm WebBrowser 1.主要用途:使用户可以在窗体中导航网页. 2.注意:WebBrowser 控件会占用大量资源.使用完该控件后一定要调用 Dispose 方法,以便确保及时 ...

  4. 使用NeatUpload控件实现ASP.NET大文件上传

    使用NeatUpload控件实现ASP.NET大文件上传 一般10M以下的文件上传通过设置Web.Config,再用VS自带的FileUpload控件就可以了,但是如果要上传100M甚至1G的文件就不 ...

  5. 扩展GridView控件——为内容项添加拖放及分组功能

    引言 相信大家对GridView都不陌生,是非常有用的控件,用于平铺有序的显示多个内容项.打开任何WinRT应用或者是微软合作商的网站,都会在APP中发现GridView的使用.“Tiles”提供了一 ...

  6. WebBrowser控件使用详解

    原文:WebBrowser控件使用详解 方法 说明 GoBack 相当于IE的“后退”按钮,使你在当前历史列表中后退一项 GoForward 相当于IE的“前进”按钮,使你在当前历史列表中前进一项 G ...

  7. WebBrowser 控件-说明

    WebBrowser.Document 为活动的文档返回自动化对象,引用 Microsoft HTML Object Library 可查看详细属性和方法 下面的解说假设窗体中有一个名称为 Web1 ...

  8. BCB:WebBrowser 控件说明

      控件文件:system32\shdocvw.oca  shdocvw.dll 注册:regsvr32 shdocvw.dll WebBrowser 是 IE 内核做的 VB 控件, WebBrow ...

  9. VC++使用WebBrowser控件,强制给控件指定版本显示网页

    转载:http://www.cnblogs.com/1175429393wljblog/p/5398928.html 最近为了抓取淘宝的成交数据,用C#的WebBrowser控件开发了一个简单的程序. ...

随机推荐

  1. C++ - Operator Precedence

    The following table lists the precedence and associativity of C++ operators. Operators are listed to ...

  2. Sql Server中COUNT(字段名)跟COUNT(*)的特殊不同点

    今天有个需求,有2张表: 1.一个“搜索记录”表search,一个“搜索后下载记录”表down 2.映射关系:每一个下载记录对应一条搜索记录,                           第个 ...

  3. OpenRisc-30-SD card controller模块分析与验证

    引言 ORPSoC的硬件平台是包含SD card controller控制器的,但是对应的linux里面却没有对应的linux的驱动程序,这使ORPSoC的SD card的使用收到了很大的限制.没有驱 ...

  4. PHP JSON_ENCODE 不转义中文汉字的方法

    ios程序中不识别读取到的JSON数据中 \u开头的数据. PHP 生成JSON的时候,必须将汉字不转义为 \u开头的UNICODE数据. 网上非常多,可是事实上都是错误的,正确的方法是在json_e ...

  5. UVA11090 Going in Cycle!! (二分+SPFA推断有无负权)

    Problem G: Going in Cycle!! Input: standard input Output: standard output You are given a weighted d ...

  6. linux串口编程总结

    串口本身.标准和硬件 † 串口是计算机上的串行通讯的物理接口.计算机历史上,串口以前被广泛用于连接计算机和终端设备和各种外部设备.尽管以太网接口和USB接口也是以一个串行流进行数据传送的.可是串口连接 ...

  7. OpenCV-Python教程(4、形态学处理)

    提示: 转载请详细注明原作者及出处,谢谢! 本文介绍使用OpenCV-Python进行形态学处理 本文不介绍形态学处理的基本概念,所以读者需要预先对其有一定的了解. 定义结构元素 形态学处理的核心就是 ...

  8. Linux下一个简单的日志系统的设计及其C代码实现

    1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息, 包括:变量名称及其值.消息结构定义.函数返回 ...

  9. 安装Oracle JDK 7.0与8.0 for Mac OS X后Eclipse启动报错的解决之道

    启动 Eclipse 时,直接报错The JVM shared library "/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Cont ...

  10. ios应用接入微信开放平台

    前几天试了一下服务端接入微信公众平台,昨天又看了一下APP接入开放平台 开放平台和公众平台的差别 公众平台针对的是公众账号,除了提供管理后台之外.也开放了若干接口,让微信server和开发人员自己的应 ...