扩展WebBrowser控件,使其支持拖放文件
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控件,使其支持拖放文件的更多相关文章
- WebBrowser控件应用:播放PPT文件
原文:WebBrowser控件应用:播放PPT文件 一开始想的是用webform来做,用iframe加载文件,把ppt文件另存成htm,然后播放. 可是后来发现,的程序不大容易控制,所以改用winfo ...
- webbrowser控件使用时的注意事项
如果HtmlElement内的没有信息,则HtmlElement的OuterText属性值为null:OuterHtml属性值则为相应的html值 如果使用OuterText属性,使用前要判断下.
- C# Winform WebBrowser控件
C# WinForm WebBrowser 1.主要用途:使用户可以在窗体中导航网页. 2.注意:WebBrowser 控件会占用大量资源.使用完该控件后一定要调用 Dispose 方法,以便确保及时 ...
- 使用NeatUpload控件实现ASP.NET大文件上传
使用NeatUpload控件实现ASP.NET大文件上传 一般10M以下的文件上传通过设置Web.Config,再用VS自带的FileUpload控件就可以了,但是如果要上传100M甚至1G的文件就不 ...
- 扩展GridView控件——为内容项添加拖放及分组功能
引言 相信大家对GridView都不陌生,是非常有用的控件,用于平铺有序的显示多个内容项.打开任何WinRT应用或者是微软合作商的网站,都会在APP中发现GridView的使用.“Tiles”提供了一 ...
- WebBrowser控件使用详解
原文:WebBrowser控件使用详解 方法 说明 GoBack 相当于IE的“后退”按钮,使你在当前历史列表中后退一项 GoForward 相当于IE的“前进”按钮,使你在当前历史列表中前进一项 G ...
- WebBrowser 控件-说明
WebBrowser.Document 为活动的文档返回自动化对象,引用 Microsoft HTML Object Library 可查看详细属性和方法 下面的解说假设窗体中有一个名称为 Web1 ...
- BCB:WebBrowser 控件说明
控件文件:system32\shdocvw.oca shdocvw.dll 注册:regsvr32 shdocvw.dll WebBrowser 是 IE 内核做的 VB 控件, WebBrow ...
- VC++使用WebBrowser控件,强制给控件指定版本显示网页
转载:http://www.cnblogs.com/1175429393wljblog/p/5398928.html 最近为了抓取淘宝的成交数据,用C#的WebBrowser控件开发了一个简单的程序. ...
随机推荐
- Android四大组件--Broadcast Receiver具体解释
本文主要讲述了: 一.BroadcastReceiver概述: 二.BroadcastReceiver事件分类 三.BroadcastReceiver事件的编程流程 四.两类BroadcastRece ...
- Swift - 计算次方(2的N次方,2的随机次方)
1,使用<<计算2的N次方 1 2 var value = 1<<4 //2的4次方 var value = 1<<Int(arc4random_uniform( ...
- 超炫的Button按钮展开弧形动画效果
----------------------收藏备用 ------------------------------- 代码下载:http://download.csdn.net/detail/qq2 ...
- [黑马程序员] I/O
---------------------- ASP.Net+Android+IO开发..Net培训.期待与您交流! ---------------------- 0. IO流概述: Java对数据的 ...
- [置顶] 强大的JQuery
JQuery初识 为了简化JS的开发,一些JS库诞生了,JQuery就是其中的一个.JQuery是一个兼容多浏览器的Javascript框架.是轻量级的JS库.jQuery为用户提供了丰富的文档说明, ...
- 浅谈mapreduce程序部署
尽管我们在虚拟机client上能非常快通过shell命令,进行运行一些已经封装好实例程序,可是在应用中还是是自己敲代码,然后部署到server中去,以下,我通过程序进行浅谈一个程序的部署过程. 在启动 ...
- javascript(五)验证
<input id="domo" type="text"> <script> function my_function(){ var ...
- [置顶] EasyMock构建单元测试
1. 背景 单元测试作为程序的基本保障.很多时候构建测试场景是一件令人头疼的事.因为之前的单元测试都是内部代码引用的,环境自给自足.开发到了一定程度,你不得不到开始调用外部的接口来完成你的功能.而外部 ...
- Codeforce 143B - Help Kingdom of Far Far Away 2
B. Help Kingdom of Far Far Away 2 time limit per test 2 seconds memory limit per test 256 megabytes ...
- Nginx分时段限制下载速度解决方案(原创)_于堡舰_新浪博客
Nginx分时段限制下载速度解决方案(原创)_于堡舰_新浪博客 Nginx分时段限制下载速度解决方案(原创) (2011-03-02 16:40:49) 转载▼ 标签: ngi ...