使用剪贴板剪切、复制和粘贴文本
两个最有用的 clipboard 方法是 settext 和 gettext。如图 12.2 所示,用这两个方法向剪贴板和从 clipboard 传送字符串数据。
图 12.2 用 settext 和 gettext 方法向剪贴板和从剪贴板传送数据
settext 将文本复制到 clipboard 上,替换先前存储在那里的文本。可将 settext 作为一条语句使用。其语法如下:
clipboard.settext data[, format]
gettext 返回存储在 clipboard 上的文本。也可将它作为函数使用:
destination = clipboard.gettext()
将 settext 和 gettext 方法,和“使用选定文本”中介绍的选择属性结合起来使用,可容易地编写文本框的“复制”,“剪切”和“粘贴”命令。下列一些事件过程,为以 mnucopy,mnucut 和 mnupaste 命名的控件,实现了这些命令:
private sub mnucopy_click ()
clipboard.clear
clipboard.settext text1.seltext
end sub
private sub mnucut_click ()
clipboard.clear
clipboard.settext text1.seltext
text1.seltext = ""
end sub
private sub mnupaste_click ()
text1.seltext = clipboard.gettext()
end sub
注意 如果它们都是菜单控件时,示例会工作得最好,这是因为 text1 有焦点时可使用菜单。
要注意的是 copy 和 cut 这两个过程,都要先用 clear 方法将 clipboard 清空。(因为可能要以几种不同的格式在 clipboard 上放置数据,所以 clipboard 不应自动清空。这在本章后面的“在 clipboard 上使用多种格式”中有详细描述。然后,copy 和 cut 这两个过程,都用下面的语句将 text1 中所选择的文本复制到 clipboard 上:
clipboard.settext text1.seltext
在“粘贴”命令中,gettext 方法将返回 clipboard 上当前的文本字符串。然后用一条赋值语句将该字符串复制到文本框的指定位置 (text1.seltext)。如果当前没有被选定的文本,则 visual basic 将该文本放置在文本框中插入点处:
text1.seltext = clipboard.gettext()
该代码假定全部文本被传送到或传送出文本框 text1,而用户可在 text1 和其它窗体上的控件之间进行复制、剪切和粘贴。
由于 clipboard 是被整个环境所共享的,所以在 text1 和任何正在使用剪贴板的应用程序之间,也能传送文本。
使用 activecontrol 属性
如果希望“复制”、“剪切”和“粘贴”命令能和任何有焦点的文本框一起工作,可使用 screen 对象的 activecontrol 属性。下列代码给任何有焦点的控件提供了一个引用:
screen.activecontrol
可将此代码段当作对控件的任何其它引用一样使用。如果知道该控件是一个文本框,就可引用支持文本框的任何属性,包括 text、seltext 和 sellength。下列代码假定活动的控件是一个文本框,且使用了 seltext 属性:
private sub mnucopy_click ()
clipboard.clear
clipboard.settext screen.activecontrol.seltext
end sub
private sub mnucut_click ()
clipboard.clear
clipboard.settext screen.activecontrol.seltext
screen.activecontrol.seltext = ""
end sub
private sub mnupaste_click ()
screen.activecontrol.seltext = clipboard.gettext()
end sub
两个最有用的 clipboard 方法是 settext 和 gettext。如图 12.2 所示,用这两个方法向剪贴板和从 clipboard 传送字符串数据。
图 12.2 用 settext 和 gettext 方法向剪贴板和从剪贴板传送数据
settext 将文本复制到 clipboard 上,替换先前存储在那里的文本。可将 settext 作为一条语句使用。其语法如下:
clipboard.settext data[, format]
gettext 返回存储在 clipboard 上的文本。也可将它作为函数使用:
destination = clipboard.gettext()
将 settext 和 gettext 方法,和“使用选定文本”中介绍的选择属性结合起来使用,可容易地编写文本框的“复制”,“剪切”和“粘贴”命令。下列一些事件过程,为以 mnucopy,mnucut 和 mnupaste 命名的控件,实现了这些命令:
private sub mnucopy_click ()
clipboard.clear
clipboard.settext text1.seltext
end sub
private sub mnucut_click ()
clipboard.clear
clipboard.settext text1.seltext
text1.seltext = ""
end sub
private sub mnupaste_click ()
text1.seltext = clipboard.gettext()
end sub
注意 如果它们都是菜单控件时,示例会工作得最好,这是因为 text1 有焦点时可使用菜单。
要注意的是 copy 和 cut 这两个过程,都要先用 clear 方法将 clipboard 清空。(因为可能要以几种不同的格式在 clipboard 上放置数据,所以 clipboard 不应自动清空。这在本章后面的“在 clipboard 上使用多种格式”中有详细描述。然后,copy 和 cut 这两个过程,都用下面的语句将 text1 中所选择的文本复制到 clipboard 上:
clipboard.settext text1.seltext
在“粘贴”命令中,gettext 方法将返回 clipboard 上当前的文本字符串。然后用一条赋值语句将该字符串复制到文本框的指定位置 (text1.seltext)。如果当前没有被选定的文本,则 visual basic 将该文本放置在文本框中插入点处:
text1.seltext = clipboard.gettext()
该代码假定全部文本被传送到或传送出文本框 text1,而用户可在 text1 和其它窗体上的控件之间进行复制、剪切和粘贴。
由于 clipboard 是被整个环境所共享的,所以在 text1 和任何正在使用剪贴板的应用程序之间,也能传送文本。
使用 activecontrol 属性
如果希望“复制”、“剪切”和“粘贴”命令能和任何有焦点的文本框一起工作,可使用 screen 对象的 activecontrol 属性。下列代码给任何有焦点的控件提供了一个引用:
screen.activecontrol
可将此代码段当作对控件的任何其它引用一样使用。如果知道该控件是一个文本框,就可引用支持文本框的任何属性,包括 text、seltext 和 sellength。下列代码假定活动的控件是一个文本框,且使用了 seltext 属性:
private sub mnucopy_click ()
clipboard.clear
clipboard.settext screen.activecontrol.seltext
end sub
private sub mnucut_click ()
clipboard.clear
clipboard.settext screen.activecontrol.seltext
screen.activecontrol.seltext = ""
end sub
private sub mnupaste_click ()
screen.activecontrol.seltext = clipboard.gettext()
end sub