Beispiel #1
0
        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;
                }
            }
        }
Beispiel #2
0
        public static void BringAutoCadToTop()
        {
            var handle = WindowController2.GetAutoCadHandle();

            WindowController2.BringWindowToTop(handle);
        }