を使用するwinform HTMLエディターを使用していますAxSHDocVw.AxWebBrowser
。ユーザーは、他のソフトウェアからテキストをコピーしてこのコントロールに貼り付けています。問題は、貼り付け時に、Ctrl-Vフォーマットを保持するためにいくつかのフォントタグを追加することです。フォーマットを保持したくないので、フォーマットせずにきれいなテキストを貼り付けるか、少なくともFONT
タグを追加しないでください。私が思うのは、Ctrl-Vクリーンアップクリップボードのテキストを貼り付ける前にインターセプトすることです。
そのため、メッセージを傍受WM_PASTE
し、クリップボードの内容を以下のように修正されたテスト (確認のみ) に置き換えようとしました
class myWB : AxSHDocVw.AxWebBrowser
{
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x302) // Trap WM_PASTE:
{
Clipboard.Clear();
Clipboard.SetText("some text");
return;
}
base.WndProc(ref m);
}
}
しかし、それは機能していませんでした。WM_PASTE
メッセージを受信しているかどうかを確認するために、IF ブロックの前に次を追加しました。
Debug.WriteLine(m.Msg);
実行時に、出力ウィンドウに 0x302 (770) が表示されませんでしたCtrl-V。
そのメッセージを受信していませんか?
では、どのような方法があるのでしょうか。貼り付ける前にテキストをクリーンアップするにはどうすればよいですか?