怎样从资源管理器中拖放文件到控件
font11 id=lb_note>当然,这里所谓的文件是指完整的文件名称,至于文件的内容,须按实际情况进一步的操作。 我这里的控件为一个lis
当然,这里所谓的文件是指完整的文件名称,至于文件的内容,须按实际情况进一步的操作。
我这里的控件为一个listbox。代码如下:
private sub form1_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
me.listbox1.allowdrop = true
end sub
private sub listbox1_dragenter(byval sender as object, byval e as system.windows.forms.drageventargs) handles listbox1.dragenter
dim o as object = e.data.getdata(dataformats.filedrop)
if not o is nothing then
e.effect = dragdropeffects.copy
end if
end sub
private sub listbox1_dragdrop(byval sender as object, byval e as system.windows.forms.drageventargs) handles listbox1.dragdrop
dim filenames as string() = ctype(e.data.getdata(dataformats.filedrop), string())
me.listbox1.items.addrange(filenames)
end sub
重写这个how to,主要的是看到有人用api实现,代码如下:
private const wm_dropfiles as integer = 563
private declare function dragacceptfiles lib "shell32.dll" (byval hwnd as intptr, byval accept as boolean) as long
private declare function dragqueryfile lib "shell32.dll" (byval hdrop as intptr, byval file as integer, byval filename as system.text.stringbuilder, byval size as int32) as int32
private declare sub dragfinish lib "shell32.dll" (byval hdrop as intptr)
protected overrides sub wndproc(byref m as system.windows.forms.message)
if m.msg = wm_dropfiles then
dim inumoffiles as int32 = dragqueryfile(m.wparam, &hffffffff, nothing, 0)
dim ipnt as int32
for ipnt = 0 to inumoffiles - 1
dim sb as new system.text.stringbuilder(256)
dim iret as int32 = dragqueryfile(m.wparam, ipnt, sb, sb.capacity)
listbox1.items.add(sb.tostring)
next
dragfinish(m.wparam)
else
mybase.wndproc(m)
end if
end sub
private sub form1_load(byval sender as object, byval e as system.eventargs) handles mybase.load
dragacceptfiles(listbox1.handle, true)
end sub
本文作者:佚名 来源:http://www.soft88.com/
CIO之家 www.ciozj.com 微信公众号:imciow
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读