作成日: 2020/12/25 最終更新日: 2020/12/25
文書種別
不具合
状況
回避方法あり
詳細
「DialogType.Image」を指定してC1EditorのShowDialogメソッドを実行しC1Editor上に任意の画像を貼り付け、これをクリックして表示される周りのつまみをドラッグし、リサイズすると、DocumentChangedイベントが複数回発生します。
・四隅のいずれかのつまみでリサイズすると2回発生
・上下左右のいずれかのつまみでリサイズすると5回発生
・四隅のいずれかのつまみでリサイズすると2回発生
・上下左右のいずれかのつまみでリサイズすると5回発生
回避方法
DocumentChangedイベントで任意の処理を行う必要がある場合、フラグを用いて処理の実行を制御する方法が考えられます。
最初にHtmlEventイベントにて、HtmlEventArgsのTypeプロパティが「MouseUp」のときにフラグを「True」に設定し、次いでDocumentChangedイベントでフラグが「True」の場合に指定の処理を行います。その後このフラグを「False」に変更して、2回目以降に発生したイベントでの処理をキャンセルします。
◎サンプルコード(VB)
最初にHtmlEventイベントにて、HtmlEventArgsのTypeプロパティが「MouseUp」のときにフラグを「True」に設定し、次いでDocumentChangedイベントでフラグが「True」の場合に指定の処理を行います。その後このフラグを「False」に変更して、2回目以降に発生したイベントでの処理をキャンセルします。
◎サンプルコード(VB)
Dim upFlag As Boolean = False
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
C1Editor1.ShowDialog(C1.Win.C1Editor.DialogType.Image)
End Sub
Private Sub C1Editor1_DocumentChanged(sender As Object, e As EventArgs) Handles C1Editor1.DocumentChanged
If upFlag Then
Console.WriteLine("c1Editor1_DocumentChanged : sender= " + sender.ToString + " e= " + e.ToString())
End If
upFlag = False
End Sub
Private Sub C1Editor1_HtmlEvent(sender As Object, e As C1.Win.C1Editor.HtmlEventEventArgs) Handles C1Editor1.HtmlEvent
If (e.Type = C1.Win.C1Editor.HtmlEventTypes.MouseUp) Then
upFlag = True
End If
End Sub
◎サンプルコード(C#) private bool upFlag = false;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
c1Editor1.ShowDialog(C1.Win.C1Editor.DialogType.Image);
}
private void c1Editor1_DocumentChanged(object sender, EventArgs e)
{
if (upFlag)
{
Console.WriteLine("c1Editor1_DocumentChanged : sender= " + sender.ToString() + " e= " + e.ToString());
}
upFlag = false;
}
private void c1Editor1_HtmlEvent(object sender, C1.Win.C1Editor.HtmlEventEventArgs e)
{
if (e.Type == C1.Win.C1Editor.HtmlEventTypes.MouseUp) {
upFlag = true;
}
}
旧文書番号
86295