如题,Form上面一个WebBrowser控件~~问题,文件拖放到WebBrowser上方响应不了Form的拖放事件,咋办?
解决方案 »
- c# winForm 做一个上传进度条【求大大帮忙】
- 求教:输入一个4位数怎么把他排成24个不同的数组输出
- 将登陆界面控件的值Login1.username付给查询语句
- BindingSource的Filter属性的2个问题
- 服务器端 socket 发送数据
- 请问如何控制picturebox中的图片?
- OLEDB 打开ACCESS数据库的问题
- 如何让TabPage获得焦点?
- 求助:各位仁兄幫幫忙,急死了,只有10分了.全給了,謝謝
- C# 连接access 登入 实在不懂哪错了 帮帮忙谢谢
- 二进制和十进制之间的转换问题
- 请问怎样用c#.net做一个相册?我在google里搜索过,但是代码看不懂。谁帮我解释一下,或者重新帮我写一下,希望注释详细些。
刚才试了一个文本文件,拖放到WebBrowser控件,直接就打开了。
刚才试了一个文本文件,拖放到WebBrowser控件,直接就打开了。
public class WebBrowserEx : WebBrowser
{
private const int WM_DROPFILES = 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); public WebBrowserEx()
: base()
{
base.AllowWebBrowserDrop = false;
} public event DragFileEventHandler DragFile; protected override void OnHandleCreated(EventArgs e)
{
base.OnHandleCreated(e);
if (!DesignMode)
{
DragAcceptFiles(Handle, true);
}
} protected override void WndProc(ref Message m)
{
StringBuilder sb = new StringBuilder(1024);
if (m.Msg == WM_DROPFILES)
{
uint count = DragQueryFile(m.WParam, 0xffffffff, null, 0);
string[] files = new string[count];
for (uint i = 0; i < count; i++)
{
DragQueryFile(m.WParam, i, sb, 1024);
files[i] = sb.ToString();
}
OnDragFile(new DragFileEventArgs(files));
return;
} base.WndProc(ref m);
} protected virtual void OnDragFile(DragFileEventArgs e)
{
if (DragFile != null)
{
DragFile(this, e);
}
}
} public delegate void DragFileEventHandler(
object sender,
DragFileEventArgs e); public class DragFileEventArgs : EventArgs
{
private string[] _files; public DragFileEventArgs(string[] files)
{
_files = files;
} public string[] Files
{
get { return _files; }
}
}