在表格关闭时,复制的文本不保存在剪贴板中VB6

时间:2013-04-15 07:52:28

标签: vba windows-7 vb6 richtextbox

我正在维护一个旧的 VB6应用程序,在Windows 7下运行时遇到一些复制/粘贴问题。一些表单有一个 RichTextBox 控件来自你可以不再复制文字(ctr-c)。

这就是我所学到的:

  • 如果表单保持打开状态,复制/粘贴工作正常,但一旦完成 表单关闭剪贴板似乎被清除了。
  • 它适用于普通文本框,它只是RichTextBox 有这个问题。
  • 它在IDE中工作正常,但在编译为exe时出现此问题 表面上。
  • 我有另一台Windows 7机器(32位),一切都按预期工作。

该应用程序使用Microsoft的Richtx32.ocx(v6.1.97.82)进行rihtext控件。我正在运行Windows 7 64位版本。

我真的很感谢任何帮助,因为我现在变得非常绝望。

修改 如果我在打开表单之前复制某些内容然后关闭相同的表单,文本仍然在剪贴板中,所以我的表单没有清除剪贴板,而是看起来像是内存管理问题?如果未使用的对象(文本框)中有文本,可能是“GC”清除剪贴板吗?

1 个答案:

答案 0 :(得分:1)

如果您确切地知道数据被“清除”了什么点,那将是一个好主意。将代码放在Me.Hide或Unload Me语句之前,在Form_Unload语句中,并在表单被清除以执行之后的某个时刻:

Clipboard.GetFormat(vbCFRTF)

这将告诉您剪贴板在什么时候没有检测到文本。

与此同时,您可以将数据保存在全局变量中,或者在剪贴板 确定的最后一点将其作为参数传回,然后在必要时在某个点执行表格关闭后:

Clipboard.Clear
Clipboard.SetText sRichText, vbCFRTF

另一件事,您是否尝试使用Windows XP SP3兼容性运行?