コード例 #1
0
        protected override void OnKeyDown(KeyEventArgs e)
        {
            bool shouldRefresh = false;

            foreach (IMapTool tool in tools)
            {
                if (e.KeyCode == Keys.Escape)
                {
                    tool.Cancel();
                    shouldRefresh = true;
                    continue;
                }
                tool.OnKeyDown(e);
            }
            if ((e.KeyCode == Keys.Delete) && (!e.Handled))
            {
                deleteTool.DeleteSelection();
                shouldRefresh = true;
            }
            if (shouldRefresh)
            {
                Refresh();
            }
            base.OnKeyDown(e);
        }
コード例 #2
0
ファイル: MapControl.cs プロジェクト: Sony-NS/SharpMap
        /// <summary>
        /// Handles the key pressed by the user
        /// </summary>
        /// <param name="e"></param>
        protected override void OnKeyDown(KeyEventArgs e)
        {
            base.OnKeyDown(e);

            var shouldRefresh = false;
            var canceled      = false;

            foreach (var tool in tools)
            {
                if (e.KeyCode == Keys.Escape)
                {
                    // if the user presses the escape key first cancel an operation in progress
                    if (tool.IsBusy)
                    {
                        tool.Cancel();
                        shouldRefresh = true;
                        canceled      = true;
                    }
                    continue;
                }
                tool.OnKeyDown(e);
            }
            if ((!canceled) && (e.KeyCode == Keys.Escape) && (!SelectTool.IsActive))
            {
                // if the user presses the escape key and there was no operation in progress switch to select.
                ActivateTool(SelectTool);
                shouldRefresh = true;
            }
            if ((e.KeyCode == Keys.Delete) && (!e.Handled))
            {
                deleteTool.DeleteSelection();
                shouldRefresh = true;
            }
            if (shouldRefresh)
            {
                Refresh();
            }
        }
コード例 #3
0
        public void CanDeleteWithoutEditableObject()
        {
            MapControl mapControl = new MapControl();

            SelectTool selectTool = mapControl.SelectTool;
            //mapControl.ActivateTool(selectTool);

            VectorLayer       vectorLayer = new VectorLayer();
            FeatureCollection layer2Data  = new FeatureCollection();

            vectorLayer.DataSource = layer2Data;
            layer2Data.FeatureType = typeof(Feature);

            layer2Data.Add(new Point(4, 5));
            layer2Data.Add(new Point(0, 1));
            mapControl.Map.Layers.Add(vectorLayer);

            selectTool.Select((IFeature)layer2Data.Features[0]);

            DeleteTool deleteTool = (DeleteTool)mapControl.GetToolByType(typeof(DeleteTool));

            deleteTool.DeleteSelection();
        }