我正在使用C#和ArcObjects通过插件更新功能类行。由于某些原因,当移动滑块时,功能类没有正确刷新,但是如果我手动刷新地图,它们会正确显示。我想测试是否强制在timelider更新上完全刷新显示将解决问题。为了做到这一点,我想在我的代码中监听timeslider更新事件。
我看到另一个与ArcSDE Direct Connection表无法正常显示相关的错误,但这不是我的问题,因为我没有使用ArcSDE Direct Connection。
我还重新计算了属性索引(在时间字段上)和空间索引但没有骰子。
所以,希望在timelider更新上刷新可能有所帮助。
我的C#插件在ArcMap 10.1 SP1中运行。后台企业geoDB位于SQLServer上。
谢谢!
答案 0 :(得分:0)
经过一天的搜索后,我发布了我的问题,然后在一小时内找到了我的解决方案。
ITimeDisplayEvents_DisplayTimeChangedEventHandler DTC_EH;
private void enableTimeDisplayEventHandler(bool enable = true)
{
IMxDocument pMxDoc = ArcMap.Document;
IMap pMap = pMxDoc.FocusMap;
IActiveView pActiveView = pMap as IActiveView;
IScreenDisplay pScreenDisplay = pActiveView.ScreenDisplay;
ITimeDisplay pTimeDisplay = pScreenDisplay as ITimeDisplay;
DTC_EH = new ITimeDisplayEvents_DisplayTimeChangedEventHandler(this.OnDisplayTimeChangedEventHandler);
((ITimeDisplayEvents_Event)pTimeDisplay).DisplayTimeChanged += DTC_EH;
}
private void OnDisplayTimeChangedEventHandler(IDisplay d, object oldvalue, object newvalue)
{
IMxDocument pMxDoc = ArcMap.Document;
IMap pMap = pMxDoc.FocusMap;
IActiveView pActiveView = pMap as IActiveView;
pActiveView.Refresh();
}
希望其他人觉得有用。