当前位置: 首页 > wzjs >正文

赣榆网站建设wordpress中文下载方法

赣榆网站建设,wordpress中文下载方法,商城站,东莞民营企业在 AutoCAD C# 二次开发中,DocumentCollectionEventHandler 是一个委托(delegate)**,用于处理与 AutoCAD 文档集合(DocumentCollection)相关的事件。它属于 AutoCAD .NET API 的事件处理机制,本…

在 AutoCAD C# 二次开发中,`DocumentCollectionEventHandler` 是一个委托(delegate)**,用于处理与 AutoCAD 文档集合(DocumentCollection)相关的事件。它属于 AutoCAD .NET API 的事件处理机制,本质上是一种**反应器(Reactor)模式**的实现,用于响应文档生命周期事件(如创建、激活、销毁文档等)。

 

 

 

 

### 核心概念解释:

1. **DocumentCollection**  

   `Application.DocumentManager` 属性返回当前 AutoCAD 会话中所有打开文档的集合(`DocumentCollection`类)。

 

2. **事件类型**  

   `DocumentCollection` 包含以下关键事件:

   - `DocumentCreated`:创建新文档时触发

   - `DocumentActivated`:切换活动文档时触发

   - `DocumentToBeDestroyed`:文档关闭前触发

   - `DocumentLockModeChanged`:文档锁定状态变化时触发

 

3. **DocumentCollectionEventHandler**  

   这是处理上述事件的**委托签名**,定义如下:

   ```csharp

   public delegate void DocumentCollectionEventHandler(

       object sender, 

       DocumentCollectionEventArgs e

   );

   ```

 

---

 

### 完整代码示例(响应文档切换事件)

以下示例演示如何监听文档激活事件,并在切换文档时执行操作:

 

```csharp

using Autodesk.AutoCAD.ApplicationServices;

using Autodesk.AutoCAD.Runtime;

using Autodesk.AutoCAD.EditorInput;

 

public class DocumentEventReactor

{

    // 初始化时订阅事件

    public DocumentEventReactor()

    {

        DocumentCollection docCol = Application.DocumentManager;

        docCol.DocumentActivated += OnDocumentActivated;

    }

 

    // 文档激活事件处理

    private void OnDocumentActivated(object sender, DocumentCollectionEventArgs e)

    {

        Document activeDoc = e.Document;

        Editor ed = activeDoc.Editor;

        

        // 获取文档名称(不含路径)

        string docName = System.IO.Path.GetFileName(activeDoc.Name);

        

        // 在命令行显示提示

        ed.WriteMessage($"\n切换到文档: {docName} | 事件类型: {e.GetType().Name}");

        

        // 示例扩展操作:检查文档是否只读

        if (activeDoc.Database.ReadOnly)

        {

            ed.WriteMessage("\n警告:当前文档为只读模式!");

        }

    }

 

    // 清理时取消订阅(重要!)

    public void Unsubscribe()

    {

        DocumentCollection docCol = Application.DocumentManager;

        docCol.DocumentActivated -= OnDocumentActivated;

    }

}

 

// 在插件入口初始化

public class PluginCommands : IExtensionApplication

{

    private static DocumentEventReactor _reactor;

 

    public void Initialize()

    {

        _reactor = new DocumentEventReactor();

        Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(

            "\n文档事件反应器已启动");

    }

 

    public void Terminate()

    {

        _reactor?.Unsubscribe();

    }

}

```

 

---

 

### 关键功能说明:

1. **事件响应场景**:

   - 用户新建/打开文档

   - 在多个图形窗口间切换

   - 关闭文档前执行清理操作

   - 同步不同文档间的状态

 

2. **实际应用场景**:

   - **多文档协同**:在文档切换时更新全局变量

   - **许可控制**:限制特定文档的功能访问

   - **日志记录**:跟踪用户操作路径

   - **资源管理**:文档关闭时释放关联资源

 

3. **注意事项**:

   - **必须显式取消订阅**:否则导致内存泄漏(在 `Terminate()` 或 `Dispose()` 中处理)

   - **避免耗时操作**:事件处理应快速完成,否则影响用户体验

   - **线程安全**:事件在 AutoCAD 主线程触发,可直接操作 UI

 

---

 

### 其他常用事件处理示例:

#### 响应文档创建事件

```csharp

Application.DocumentManager.DocumentCreated += (sender, e) => 

{

    Editor ed = e.Document.Editor;

    ed.WriteMessage($"\n新文档已创建: {e.Document.Name}");

};

```

 

#### 响应文档关闭事件

```csharp

Application.DocumentManager.DocumentToBeDestroyed += (sender, e) => 

{

    // 保存自定义数据到外部文件

    string backupPath = $"C:\\Backups\\{e.Document.Name}.settings";

    SaveCustomData(e.Document, backupPath);

};

```

 

通过合理利用 `DocumentCollectionEventHandler`,您可以构建响应 AutoCAD 文档环境变化的智能插件,显著提升用户体验和自动化水平。

 

 

 


文章转载自:

http://Z65OxvDB.yrwqz.cn
http://qIAFxBdX.yrwqz.cn
http://seQwkNZH.yrwqz.cn
http://Kn8FjaEY.yrwqz.cn
http://x2Fr4Sud.yrwqz.cn
http://pdmH59iR.yrwqz.cn
http://naMCPeP2.yrwqz.cn
http://FWRnoJ7y.yrwqz.cn
http://28PRRZfK.yrwqz.cn
http://LU6tLWve.yrwqz.cn
http://GGyC6Zsq.yrwqz.cn
http://hD1nwpEg.yrwqz.cn
http://0EUgDOQv.yrwqz.cn
http://NR4JVQXa.yrwqz.cn
http://JXD0MoYT.yrwqz.cn
http://L2pYIxpj.yrwqz.cn
http://QD6iytti.yrwqz.cn
http://teAtJlpV.yrwqz.cn
http://4NQtCAgc.yrwqz.cn
http://PbC3Ebno.yrwqz.cn
http://qqVBj4As.yrwqz.cn
http://KRCslBnd.yrwqz.cn
http://rO0tERRV.yrwqz.cn
http://oiKTYqpo.yrwqz.cn
http://p3U1SMN2.yrwqz.cn
http://CFxkBiSA.yrwqz.cn
http://uI06Qr7c.yrwqz.cn
http://Oc5eu8uG.yrwqz.cn
http://5ah7PqtV.yrwqz.cn
http://nu8XYRHv.yrwqz.cn
http://www.dtcms.com/wzjs/715614.html

相关文章:

  • 烟台市福山区住房和建设局网站重庆知名网络公司
  • 北京模板建站选择网站开发公司的标准
  • 从网站优化之角度出发做网站策划56做视频网站
  • 使用asp.net制作网站的整体过程中信建设有限责任公司崔玮
  • 模板生成网站怎么创建手机网站
  • 专做火影黄图的网站wordpress标题怎么写
  • 网站优化如何收费wap企业网站源码
  • 2018年做淘宝客网站需要备案嘛十大网站开发公司
  • 重庆市建设领域农民工工资专户网站最新提升关键词排名软件
  • 公司要求做网站公众号wordpress
  • 汕头高端模板建站网络工程师证书报考条件
  • 凡客诚品的网站特色郑州企业建设网站有什么用
  • 电商网站设计思路动叫建个网站刷排名
  • 网站建设类的论文题目唯艾迪 wordpress
  • 整站seo优化哪家好模板wordpress演示站怎么做
  • asp.net 网站安全 检测免费网站建设模板下载
  • 做竞赛的平台或网站哪个网站可以看一级a做爰片t
  • 做的比较好的网站推荐事业单位网站设计
  • 抖音运营推广策划方案东莞公司网站做优化
  • 别人用我的备案信息做网站长沙做网站的价格
  • 用php做的网站有哪些成功案例
  • 试玩平台网站开发佛系wordpress博客
  • 广西莲城建设集团有限公司网站旅游网站静态模版下载
  • 上海平台网站建设平台企业app定制开发设计方案
  • 企业建设网站的价值在网站文字上做超链接
  • 静态网站案例重庆市建设工程信息网登录入口
  • 北京公交yy优化南宁seo服务公司
  • 自己如何做公司网站汕头企业网站推广技巧
  • 百度网站禁止访问怎么解除西安商城网站开发制作
  • 成都网站建设 3e网络免费申请网站官网