1

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

这是我学到的:

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

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

我真的很感谢在这方面的任何帮助,因为我现在有点绝望。

编辑: 如果我在打开表单之前复制了一些东西,然后关闭了同一个表单,那么文本仍然在剪贴板中,所以我的表单没有清除剪贴板,而是似乎是内存管理问题?如果未使用的对象(文本框)中有文本,它可能是清除剪贴板的“GC”吗?

4

1 回答 1

1

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

Clipboard.GetFormat(vbCFRTF)

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

同时,您可以将数据保存在全局变量中,或者在剪贴板正常的最后一点将其作为参数传回,然后如果需要,在表单关闭后的某个点执行:

Clipboard.Clear
Clipboard.SetText sRichText, vbCFRTF

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

于 2013-04-15T09:09:58.430 回答