应该在清除前后各刷新一次。IFeatureSelection.Clear()和IMap.ClearSelection()都是一样的方法。
///<summary>Clear the selected features in the IActiveView for a specified IFeatureLayer.</summary>
///
///<param name="activeView">An IActiveView interface</param>
///<param name="featureLayer">An IFeatureLayer</param>
///
///<remarks></remarks>
public void ClearSelectedMapFeatures(ESRI.ArcGIS.Carto.IActiveView activeView, ESRI.ArcGIS.Carto.IFeatureLayer featureLayer)
{
if(activeView == null || featureLayer == null)
{ return; }
ESRI.ArcGIS.Carto.IFeatureSelection featureSelection = featureLayer as ESRI.ArcGIS.Carto.IFeatureSelection;
// Dynamic Cast
// Invalidate only the selection cache. Flag the original selection
activeView.PartialRefresh(ESRI.ArcGIS.Carto.esriViewDrawPhase.esriViewGeoSelection, null, null);
// Clear the selection featureSelection.Clear();
// Flag the new selection activeView.PartialRefresh(ESRI.ArcGIS.Carto.esriViewDrawPhase.esriViewGeoSelection, null, null);
}