ole对象实际上就是别人的程序原封不动的拿来使用。可在VisualBasic应用程序中添加的最强大、最有用的功能之一就是在控件和控件之间、在控件和其它Windows应用程序之间拖动文本和图形。有了OLE,就可将这种功能引入到应用程序中。使用OLE拖放时,并不是把一个控件拖动到另一个控件并调用代码(象本章前面讨论的拖放一样);而是将数据从一个高戚陆控件或应用程序移动到另一个控件或应用程序。例如,您可以选择并拖动Excel中的一个单元范围,然后将它们放到应用程序的DataGrid控件上。VisualBasic的几乎所有控件都在某种程度上支持OLE拖放。此外,一些标准的和ActiveX控件(由VisualBasic专业版和企业版提供的)还提供对OLE拖放戚顷的自动支持,这意味着控件支持在OLEDragMode和OLEDropMode属性中的自动设置,并且无论是从控件拖出还是在控件内放入都不需要编写代码。这一点与手动拖放相反,在手动拖放中,您必须为拖放编程:有些支持自动OLEDragMode和OLEDropMode的控件包括PictureBox、Label、以及TextBox控件。为对这些控件启动自动OLE拖放,应将OLEDragMode和OLEDropMode都设置为“自动化”。有些控件支持自动OLE拖动,但只支持手动放下,有些支持自动放下,但只支持手动拖动。例如,ComboBox控件支持手动和自动拖动,但不支持自动放下。这是由于如果您将一个项目拖动到ComboBox中,VisualBasic无法知道将新项目放下的确切位置。然而,可以使用手动放下,仔粗这样您就可以将项目程序化的放在您希望在ComboBox中的位置了。要启动这些控件的自动拖动,应将OLEDragMode属性设置为“自动化”。有些控件只支持手动OLE拖放事件,这意味着可用代码对它们进行编程,使之成为OLE拖放操作的源,也可使之成为OLE拖放操作的目标。注意为判断其它ActiveX控件是否支持OLE拖放,应在VisualBasic中加载控件并检查OLEDragMode和OLEDropMode属性是否存在,或检查OLEDrag方法是否存在。(不自动支持OLE拖动的控件也将不具有OLEDragMode属性,但是,如果控件通过代码支持OLE拖动,则其具有OLEDrag方法。)注意窗体、MDI窗体、文档对象、用户控件和属性页都包含OLEDropMode属性,而且仅支持手工拖放。