private void OnDropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            switch (e.ClickedItem.Name)
            {
            case "itemCopyText":
                StringBuilder copyText = new StringBuilder();
                string        cols     = "";
                foreach (ColumnHeader col in lvCoordinates.Columns)
                {
                    cols += $"{col.Text}\t";
                }
                copyText.Append($"{cols.TrimEnd()}\r\n");

                foreach (ListViewItem item in lvCoordinates.Items)
                {
                    copyText.Append(item.Text);
                    for (int n = 1; n < item.SubItems.Count; n++)
                    {
                        copyText.Append($"\t{item.SubItems[n]?.Text}");
                    }
                    copyText.Append("\r\n");
                }
                Clipboard.SetText(copyText.ToString());
                break;

            case "itemSetCoordinate":
                _coordinateEntryForm = new CoordinateEntryForm(global.MappingForm.MapControl, global.MappingForm.MapLayersHandler);
                _coordinateEntryForm.CoordinateAvailable  += OnCoordinateAvailable;
                _coordinateEntryForm.CoordinateFormClosed += OnCoordinateFormClosed;
                _coordinateEntryForm.TreeLevel             = "municipality";
                _coordinateEntryForm.SetLocation(lvCoordinates.SelectedItems[0].Text, int.Parse(lvCoordinates.SelectedItems[0].Name));
                _coordinateEntryForm.Show(this);
                break;
            }
        }
        private void OnListMouseDown(object sender, MouseEventArgs e)
        {
            chkShowOnMap.Enabled = global.MapIsOpen;
            ListViewHitTestInfo hitTest = lvCoordinates.HitTest(e.X, e.Y);

            _treeLevel = hitTest.Item.Tag.ToString();
            if (_coordinateEntryForm != null)
            {
                _coordinateEntryForm.TreeLevel = _treeLevel;
                _coordinateEntryForm.SetLocation(hitTest.Item.Text, int.Parse(hitTest.Item.Name));
            }

            if (chkShowOnMap.Checked &&
                global.MapIsOpen &&
                hitTest.Item.SubItems[1].Text.Length > 0 &&
                hitTest.Item.SubItems[2].Text.Length > 0
                )
            {
                Shapefile sf = new Shapefile();
                sf.GeoProjection = global.MappingForm.MapControl.GeoProjection;
                if (sf.CreateNew("", ShpfileType.SHP_POINT))
                {
                    var   ifldLocation = sf.EditAddField("Location", FieldType.STRING_FIELD, 0, 50);
                    Shape shp          = new Shape();
                    if (shp.Create(ShpfileType.SHP_POINT))
                    {
                        float y   = _dictCoordinate[int.Parse(hitTest.Item.Name)].Latitude;
                        float x   = _dictCoordinate[int.Parse(hitTest.Item.Name)].Longitude;
                        var   iPt = shp.AddPoint(x, y);
                        if (iPt >= 0)
                        {
                            var iShp = sf.EditAddShape(shp);
                            if (iShp >= 0)
                            {
                                sf.EditCellValue(ifldLocation, iShp, hitTest.Item.Text);
                                sf.DefaultDrawingOptions.PointShape  = tkPointShapeType.ptShapeCircle;
                                sf.DefaultDrawingOptions.FillColor   = new Utils().ColorByName(tkMapColor.Red);
                                sf.DefaultDrawingOptions.LineVisible = false;
                                sf.DefaultDrawingOptions.PointSize   = 8;
                                sf.CollisionMode = tkCollisionMode.AllowCollisions;
                                global.MappingForm.MapLayersHandler.AddLayer(sf, "Location", isVisible: true, uniqueLayer: true);
                            }
                        }
                    }
                }
            }

            if (e.Button == MouseButtons.Right)
            {
                menuDropDown.Items.Clear();
                var item = menuDropDown.Items.Add("Set coordinate");
                item.Name    = "itemSetCoordinate";
                item.Enabled = global.MapIsOpen;

                item         = menuDropDown.Items.Add("Map coordinates");
                item.Name    = "itemMapCoordinates";
                item.Enabled = global.MapIsOpen;

                item      = menuDropDown.Items.Add("Copy text");
                item.Name = "itemCopyText";

                menuDropDown.Show(Cursor.Position);
            }
        }