1

Windows 7 での実行時にコピー/貼り付けで問題が発生する古いVB6 アプリケーションを維持しています。いくつかのフォームには、テキスト(ctr-c) をコピーできないRichTextBoxコントロールがあります。

これは私が学んだことです:

  • フォームを開いたままにしておくと、コピー/貼り付けは正常に機能しますが、フォームを閉じるとすぐにクリップボードがクリアされるようです。
  • 通常のテキスト ボックスでは問題なく動作しますが、この問題があるのは 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

もう 1 つ、Windows XP SP3 互換で実行してみましたか?

于 2013-04-15T09:09:58.430 に答える