双击CAD对象,显示自定义对话框实现方法

时间:2023-03-08 19:47:15

class TlsApplication : IExtensionApplication

{

void IExtensionApplication.Initialize()

{

TTest.Start();

}

void IExtensionApplication.Terminate()

{

}

}

class TTest

{

static bool m_Veto = false;

public static void Start()

{

Application.DocumentManager.DocumentLockModeChanged += new DocumentLockModeChangedEventHandler(vetoCommand);

Application.BeginDoubleClick += new BeginDoubleClickEventHandler(beginDoubleClick);

}

static void beginDoubleClick(object sender, BeginDoubleClickEventArgs e)

{

Document doc = Application.DocumentManager.MdiActiveDocument;

Editor ed = doc.Editor;

PromptSelectionResult res = ed.SelectImplied();

SelectionSet ss = res.Value;

if (ss != null)

{

if (ss.Count == 1)

{

using (Transaction tr = doc.TransactionManager.StartTransaction())

{

Line line = tr.GetObject(ss[0].ObjectId, OpenMode.ForRead) as Line;

if (line != null)

{

ResultBuffer rb = line.GetXDataForApplication("MyApp");

if (rb != null)

{

m_Veto = true;

}

}

}

}

}

}

static void vetoCommand(object sender, DocumentLockModeChangedEventArgs e)

{

if (e.GlobalCommandName.ToLower() == "properties")

{

if (m_Veto)

{

e.Veto();

Application.ShowAlertDialog("hello");

m_Veto = false;

}

}

}

}

相关文章