码迷,mamicode.com
首页 > 其他好文 > 详细

歪兔工具条(YToolsforArcMap)简介之ArcMap插件进度消息通知窗口的实现

时间:2020-02-08 00:48:57      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:arc   传递   进度   技术   要素类   显示   一个   progress   结构体   

一个简单ArcMap插件进度消息通知窗口的实现方法。

技术图片

一个进度窗体

①搞一个label,塞进一个gif动图,让窗体Show出来的时候一直转啊转啊转;

②搞一个label写点提示文字“请稍等”啥的;再搞一个label用来显示进度。

进度Form的代码如下:

技术图片

 

 

一个进度窗体管理器

ProgressFormManger

代码如下:

技术图片

 

 

进度消息的传递机制

一个委托   

public delegate void ProgressChangedEventHandler(object o,ProgressChangedEventArgs e);

一个接口+一个事件

 public interface IProgress
    {
        event ProgressChangedEventHandler ProgressChangedEvent;
    }

一个进度消息结构体

    /// <summary>
    /// 进度消息结构体。
    /// </summary>
    public struct ProgressChangedEventArgs
    {
        /// <summary>
        /// 当前处理进度
        /// </summary>
        public int CurrentIndex { get; set; }
        /// <summary>
        /// 总的要素个数
        /// </summary>
        public int FeatureCount { get; set; }
        /// <summary>
        /// 文字描述的进度消息
        /// </summary>
        public string Message { get; set; }
    }

一个进度消息发送器

技术图片

 

消息通知的发起

工作类继承IProgress接口,实现ProgressChangedEvent事件属性

技术图片

 

 工作类继承ProgressMessagesSender类,实现OnProgressChange方法。

OnProgressChange(checkProgressChangedEventHandler,index, featureCount);
OnProgressChange(this.progressChangeEventHandler, ">>> 创建待处理要素类的副本。");

进度窗口的更新

定义IProgressSetter接口、扩展方法

技术图片

工具窗口继承IProgressSetter接口

通过GetArcMapRECT方法获取ArcMap窗口四角坐标的结构体,用以实例化进度窗口时确定其位置。

ShowProgressForm方法传入继承IProgress接口的“处理器”,进度消息窗口实例progressForm,进度消息窗口管理器实例manger,展示进度窗体。

技术图片

 

歪兔工具条(YToolsforArcMap)简介之ArcMap插件进度消息通知窗口的实现

标签:arc   传递   进度   技术   要素类   显示   一个   progress   结构体   

原文地址:https://www.cnblogs.com/yzhyingcool/p/12274592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!