public static void BringDrawingToTop(IntPtr drawingHandle) { var currentWindowHandle = WindowController2.GetTopDrawingHandle(); if (currentWindowHandle == drawingHandle) { return; //既に最前面に来ていたら抜ける } var lastBlockTableId = AutoCad.Db.BlockTable.GetModelId(); WindowController2.BringWindowToTop(drawingHandle); //タイミングによってか、図面を切り替えても取得するブロックテーブルが切り替わらないことがあるので、 //前回のブロックテーブルと違うブロックテーブルを取得できるまでひたすら取得する(5回)。 for (var i = 0; i < 5; i++) { var blockTableId = AutoCad.Db.BlockTable.GetModelId(); System.Threading.Thread.Sleep(100); if (lastBlockTableId != blockTableId) { break; } } }
public static void BringAutoCadToTop() { var handle = WindowController2.GetAutoCadHandle(); WindowController2.BringWindowToTop(handle); }