作成日: 2021/10/05 最終更新日: 2022/03/31
文書種別
不具合
状況
回避方法あり
詳細
PasteメソッドでC1Editorに画像を貼り付けた際に、Xmlプロパティに画像情報が含まれません。ただし、その後ボタンクリックなどの操作で同じように取得した場合には、画像情報が含まれます。
【特記事項】 2020Jv3(4.5.20203.469)では発生しませんでした。
【特記事項】 2020Jv3(4.5.20203.469)では発生しませんでした。
回避方法
この問題は、特定のイベントが終了するまで、C1Editorが、基になっているWebBrowserコントロールとの間でデータ転送を完了できないことが原因となっています。
例えば、button1_Clickイベント内で次のような処理をしている場合、
回避方法として、Pasteの次のコードの前にWindowsメッセージを処理できるようにする2通りの方法が考えられます。
(1)Pasteメソッドの後にApplication.DoEvents()を実行する
(2)タイマーを使用し、Pasteメソッドの後に短時間で発生するTickイベント内で、次の処理を行う。
例えば、button1_Clickイベント内で次のような処理をしている場合、
Clipboard.SetDataObject(data, true, 100, 500); // dataは任意のオブジェクト
c1Editor1.Paste();
textBox1.Text = c1Editor1.Xml;
回避方法として、Pasteの次のコードの前にWindowsメッセージを処理できるようにする2通りの方法が考えられます。
(1)Pasteメソッドの後にApplication.DoEvents()を実行する
Clipboard.SetDataObject(data, true, 100, 500); // dataは任意のオブジェクト
c1Editor1.Paste();
Application.DoEvents(); // 追加コード
textBox1.Text = c1Editor1.Xml;
(2)タイマーを使用し、Pasteメソッドの後に短時間で発生するTickイベント内で、次の処理を行う。
//--------回避方法(1/2)--------
timer1.Interval = 1;
c1Editor1.Paste();
timer1.Enabled = true;
・・・
//--------回避方法(2/2)--------
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
textBox1.Text = c1Editor1.Xml;
}