(Leadtools.Annotations.Automation)

フレームを表示

BeginUndoメソッド






このAnnAutomationの新しい取り消しノードオブジェクトを作成します。
構文
public virtual void BeginUndo()
'Declaration
 
Public Overridable Sub BeginUndo() 
public virtual void BeginUndo()
-(void) beginUndo;
public void beginUndo()
 function Leadtools.Annotations.Automation.AnnAutomation.BeginUndo()
解説

このAnnAutomationによって維持管理される取り消しスタックにプログラムコードからノードを追加するために、BeginUndoEndUndoCancelUndoを使います。通常、以下のように取り消しノードを追加します:

  1. 新しいノードを作成するために変更を行う前に、BeginUndoメソッドを呼び出します。

  2. AnnAutomationオブジェクトに変更を加えます。

  3. EndUndoメソッドを呼び出して、AnnAutomationオブジェクトの取り消しスタックにこの取り消しノードをコミットします。

  4. エラーが発生した場合(通常はcatchステートメントで受け取ります)は、CancelUndoメソッドを呼び出してハンドルを削除し、操作をキャンセルします。

このAnnAutomationオブジェクトからメソッドを呼び出す場合は、BeginUndo、EndUndoまたはCancelUndoを手動で呼び出す必要はありません。AnnAutomationオブジェクトは、内部的にこの操作を実行します。たとえば、現時点では編集されているオブジェクトを削除するためにDeleteSelectedObjectsメソッドを呼び出すとき、AnnAutomationオブジェクトは取り消しノードを追加するために内部的に上記のシーケンスを実行します。

UndoCapacityプロパティを使って、Undoメソッドを使って反転できる、またはRedoメソッドを使って再度適用できるユーザーアクションの数を取得または設定します。UndoCapacityプロパティのデフォルトのアクション数は10です。

オートメーション操作の取り消しまたはやり直しに関する情報は、「アノテーションの自動操作の取り消し」を参照してください。

サンプル

このサンプルは、手動で自動オブジェクトに新しい長方形オブジェクトを追加して、それからそれを編集し始めます。

Copy Code  
using Leadtools.Annotations.Automation;
using Leadtools.Annotations.Core;
using Leadtools.Codecs;
using Leadtools.Controls;
using Leadtools.Annotations.Rendering;
using Leadtools.Annotations.WinForms;

[TestMethod]
public void AnnAutomation_BeginUndo()
{
   // first create a new undo node
   _automation.BeginUndo();
   try
   {
      // add a new rectangle object
      AnnRectangleObject rectObj = new AnnRectangleObject();
      rectObj.Rect = LeadRectD.Create(100, 100, 800, 800);
      rectObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Blue"), LeadLengthD.Create(1));
      rectObj.Fill = AnnSolidColorBrush.Create("Yellow");
      _automation.Container.Children.Add(rectObj);

      // Invalidate it
      _automation.Invalidate(LeadRectD.Empty);

      // Select this object
      _automation.SelectObject(rectObj);

      // commit the undo node
      _automation.EndUndo();
   }
   catch (Exception ex)
   {
      // in case of errors, cancel the undo node
      _automation.CancelUndo();
      Debug.WriteLine(ex.Message);
      return;
   }

   Debug.WriteLine("Object has been added as is now selected. Next will call //Undo// to undo the operation");
   _automation.Undo();
   Debug.WriteLine("Operation has been undone. Next will call //Redo// to redo the operation");
   _automation.Redo();
   Debug.WriteLine("Object should be back and selected");
}
using Leadtools.Annotations.Automation;
using Leadtools.Controls;
using Leadtools.Converters;
using Leadtools.Annotations.Core;
using Leadtools.Codecs;

[TestMethod]
public void AnnAutomation_BeginUndo()
{
   // first create a new undo node
   _automation.BeginUndo();
   try
   {
      // add a new rectangle object
      AnnRectangleObject rectObj = new AnnRectangleObject();
      rectObj.Rect = LeadRectDHelper.Create(100, 100, 800, 800);
      rectObj.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Blue"), LeadLengthDHelper.Create(1));
      rectObj.Fill = AnnSolidColorBrush.Create("Yellow");
      _automation.Container.Children.Add(rectObj);

      // Invalidate it
      _automation.Invalidate(LeadRectDHelper.Empty);

      // Select this object
      _automation.SelectObject(rectObj);

      // commit the undo node
      _automation.EndUndo();
   }
   catch (Exception ex)
   {
      // in case of errors, cancel the undo node
      _automation.CancelUndo();
      Debug.WriteLine(ex.Message);
      return;
   }

   Debug.WriteLine("Object has been added as is now selected. Next will call //Undo// to undo the operation");
   _automation.Undo();
   Debug.WriteLine("Operation has been undone. Next will call //Redo// to redo the operation");
   _automation.Redo();
   Debug.WriteLine("Object should be back and selected");
}
必要条件

ターゲットプラットホーム

参照

参照

AnnAutomationクラス
AnnAutomationメンバ

  Leadtools.Annotations.Automationは、DocumentまたはMedicalツールキットのライセンスと、解除キーが必要です。詳細は、以下を参照してください。LEADTOOLSツールキット機能