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