打开AutoCAD绘图后,C#将窗口格式更改为ontop

时间:2013-02-13 09:41:31

标签: c# forms autocad

我为AutoCAD编写了一个C#插件,用户可以在其中输入一些信息,之后应该打开相应的图纸。

实际工作流程应为:

  1. 我在AutoCAD中启动插件
  2. 用户可以在当前活动图纸顶部的窗体中输入一些信息
  3. 当用户点击回车按钮时,应该打开一个新图纸
  4. 应该关闭用户输入某些信息的表单(工作正常)
  5. 应该打开一个新窗口表格以输入一些其他信息(与第一个窗口不同的窗口)但是在新图纸中
  6. 问题是我可以正确关闭第一个窗口并正确打开新图形。像这样:

        DocumentCollection documentCollection = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager;
    
        if (File.Exists(absoultePathOfDrawing))
        {
        Document newDrawing = documentCollection.Open(absoultePathOfDrawing, false);
        Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument = newDrawing; // this sets the new drawing as the active one ==> is on top
        }
    
    Dispose(); // closes the first form
    DialogResult = DialogResult.OK; // tells my applciation that the first window was successfully closed
    

    表单正确关闭,之后我尝试使用以下命令打开新表单:

    if (result == DialogResult.OK)
    {
          MessageBox.Show("Test");          
    
    }
    

    但是现在新的图纸在上面,后面是旧图纸。当我切换回旧图形时,将显示新的MessageBox,但实际上这应该显示在新图形中,因为我将活动文档设置为新图形。 我做错了什么?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。

我必须使用以下选项加载我的插件:

[CommandMethod("PluginName", Autodesk.AutoCAD.Runtime.CommandFlags.Session)]

如果没有这个,我的插件只在一个文件(我开始插件的那个文件)中有效