问题描述
网上找了很多,但都只能从窗体控件到控件的拖动能够成功,而从资源管理器到控件的拖动却怎么也不行,网上的例子都讲到有,但却不能实现.api函数用过能行,但是太复杂了,难道就不能用vb2005里面的那几个事件来用吗?帮助文档和网上看的都写的可以,但调试的时候就是不行.我还跟踪了拖放有关的事件,当从资源管理器拖动文件到窗体控件中时,那几个事件根本就没有触发,这是怎么回事?这是我的代码:PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadMe.ListBox1.AllowDrop=TrueEndSubPrivateSubListBox1_DragEnter(ByValsenderAsObject,ByValeAs_System.Windows.Forms.DragEventArgs)HandlesListBox1.DragEnterIfe.Data.GetDataPresent(DataFormats.FileDrop)Thene.Effect=DragDropEffects.AllEndIfEndSubPrivateSubListBox1_DragDrop(ByValsenderAsObject,ByValeAs_System.Windows.Forms.DragEventArgs)HandlesListBox1.DragDropIfe.Data.GetDataPresent(DataFormats.FileDrop)ThenDimMyFiles()AsStringDimiAsInteger'Assignthefilestoanarray.MyFiles=CType(e.Data.GetData(DataFormats.FileDrop),String())'Loopthroughthearrayandaddthefilestothelist.Fori=0ToMyFiles.Length-1ListBox1.Items.Add(MyFiles(i))NextEndIfEndSub请高人指点一二呀!一定是用vb2005写的哈,有调试通过的源代码最好啊.
解决方案
解决方案二:
ListBox1_DragEnter里看看e.Data.GetFormats()*****************************************************************************欢迎使用CSDN论坛专用阅读器:CSDNReader(附全部源代码)http://feiyun0112.cnblogs.com/
解决方案三:
设置TxtBoxMain文本控件:AllowDrop=TruePrivateSubTxtBoxMain_DragEnter(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.DragEventArgs)HandlesTxtBoxMain.DragEnterIfe.Data.GetDataPresent(DataFormats.FileDrop)Thene.Effect=DragDropEffects.AllEndIfEndSubPrivateSubTxtBoxMain_DragDrop(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.DragEventArgs)HandlesTxtBoxMain.DragDropIfe.Data.GetDataPresent(DataFormats.FileDrop)ThenMe.TxtBoxMain.Clear()DimMyFiles()AsStringMyFiles=e.Data.GetData(DataFormats.FileDrop)Me.TxtBoxMain.Text=My.Computer.FileSystem.ReadAllText(MyFiles(0),System.Text.Encoding.Default)EndIfEndSub我的可以啊。
解决方案四:
'设置ListBoxFF控件的:AllowDrop=TruePrivateSubListBoxFF_DragDrop(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.DragEventArgs)HandlesListBoxFF.DragDropIfe.Data.GetDataPresent(DataFormats.FileDrop)ThenMe.ListBoxFF.Items.Clear()DimMyFiles()AsStringDimiAsIntegerMyFiles=e.Data.GetData(DataFormats.FileDrop)Fori=0ToMyFiles.Length-1IfString.Equals(Path.GetExtension(MyFiles(i)).ToLower,".xls")ThenMe.ListBoxFF.Items.Add(MyFiles(i))EndIfNextEndIfEndSubPrivateSubListBoxFF_DragEnter(ByValsenderAsSystem.Object,ByValeAsSystem.Windows.Forms.DragEventArgs)HandlesListBoxFF.DragEnterIfe.Data.GetDataPresent(DataFormats.FileDrop)Thene.Effect=DragDropEffects.AllEndIfEndSub
我的这个也可以啊。只可以拖放excel文件到ListBox里面。
解决方案五:
上面的是我的程序:http://blog.csdn.net/linjimu/archive/2008/03/01/2137690.aspx我的空间里面有许多拖放操作的文章,内容:ListBox-ListView-TextBox-这几个控件之间的拖放操作。拖放自定义数据等都有涉及到。
解决方案六:
会不会是操作系统的原因?我用的是vista操作系统.上面的我都试了,还是不行啊?
解决方案七:
呵呵。那你就把程序拿到win2000winxp系统运行。试一试看看啊。我也没有在vista用过。