void m_Content_LayerSelected(SharpMap.Layers.ILayer layer) { if (layer is EidssUserBufZoneLayer) { m_TargetLayerGuid = ((EidssUserBufZoneLayer)layer).LayerDbGuid; if (m_TargetLayerGuid != Guid.Empty) { IsEnabled = true; if (IsActive) { IsActive = false; IsActive = true; } if (m_MiMove != null) { if (UserDbLayersManager.GetLayerMetadata(m_TargetLayerGuid).m_PivotalLayer != PivotLayerType.None || m_IsMoveMode) { m_MiMove.Visible = false; } else { m_MiMove.Visible = true; } } } } else { IsActive = IsEnabled = false; } }
void mi_Prop_Click(object sender, EventArgs e) { #region Apply movement or not //m_SelectedFeature = null; if (m_IsMoveMode) { if (ApplyMovement(false) == DialogResult.Cancel) { return; } } #endregion var userLayer = UserDbLayersManager.GetUserLayer(m_TargetLayerGuid); var lyr = (EidssUserBufZoneLayer)userLayer; var zone = lyr.FeatureRowToStruct(m_SelectedFeature); if (zone.Radius > 0) { var frm = new CircleBufZone(); frm.ZoneName = zone.Name; frm.Description = zone.Description; frm.Radius = zone.Radius; if (frm.ShowDialog() == DialogResult.OK) { zone.Name = frm.ZoneName; zone.Description = frm.Description; zone.Radius = frm.Radius; var projectedCenter = zone.Center;// GeometryTransform.TransformGeometry(zone.Center, CoordinateSystems.WGS84, // CoordinateSystems.SphericalMercatorCS); var projectedBufGeom = GIS_V4.Utils.GeometryUtils.CreateBuffer(projectedCenter, zone.Radius); var geom = projectedBufGeom;//GeometryTransform.TransformGeometry(projectedBufGeom, CoordinateSystems.SphericalMercatorCS, // CoordinateSystems.WGS84); zone.Geometry = geom; lyr.UpdateZone(zone); m_SelectedFeature = null; } } else { var frm = new PolygonBufZone(); frm.ZoneName = zone.Name; frm.Description = zone.Description; if (frm.ShowDialog() == DialogResult.OK) { zone.Name = frm.ZoneName; zone.Description = frm.Description; lyr.UpdateZone(zone); m_SelectedFeature = null; } } m_MapImage.Refresh(); }
/// <summary> /// Add layer to the map /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void AddButton_Click(object sender, EventArgs e) { using (new TemporaryWaitCursor()) { if (LayersTabControl.SelectedTabPage == systemTab) { SelectedLayer = new EidssSystemDbLayer(((NamedTable)systemLayersList.SelectedItem).m_Name); SelectedLayer.DataSource = new EidssSqlServer2008(((NamedTable)systemLayersList.SelectedItem).m_Table); GenerateRandomStyle(SelectedLayer); Close(); return; } if (LayersTabControl.SelectedTabPage == additionalTab) { SelectedLayer = new EidssExtSystemDbLayer(((NamedTable)extSysLayersList.SelectedItem).m_Name); SelectedLayer.DataSource = new EidssSqlServer2008(((NamedTable)extSysLayersList.SelectedItem).m_Table); GenerateRandomStyle(SelectedLayer); Close(); return; } if (LayersTabControl.SelectedTabPage == bufZoneTab) { if (bufLayersGridView.SelectedRowsCount != 1) { return; } var selectedRow = bufLayersGridView.GetDataRow(bufLayersGridView.FocusedRowHandle); SelectedLayer = UserDbLayersManager.GetUserLayer((Guid)selectedRow[0]); Close(); return; } } }
protected override void OnClick() { var bufZonesLayer = new BufZonesLayer { IsAVR = m_MapImage.Parent is AvrMapControl }; if (bufZonesLayer.ShowDialog() == DialogResult.OK) { try { var eidssUserBufZoneLayer = UserDbLayersManager.CreateBufZoneLayer(bufZonesLayer.ZoneLayerName, bufZonesLayer.Description, bufZonesLayer.PivotalLayer); //MapImage.Map.Layers.Add(eidssUserBufZoneLayer); if (OnCreateBufZone != null) { OnCreateBufZone(new KeyValuePair <Guid, string>(eidssUserBufZoneLayer.LayerDbGuid, eidssUserBufZoneLayer.LayerName)); } //MapControl.RefreshContent(); MapImage.Refresh(); //ZoneLayerStorage.UpdateZoneLayerDict(); //not need more } catch (Exception ex) { ErrorForm.ShowError(ex); } } }
void m_Content_LayerSelected(SharpMap.Layers.ILayer layer) { if (layer is EidssUserBufZoneLayer) { m_TargetLayerGuid = ((EidssUserBufZoneLayer)layer).LayerDbGuid; if (m_TargetLayerGuid != Guid.Empty) { IsEnabled = (UserDbLayersManager.GetLayerMetadata(m_TargetLayerGuid).m_PivotalLayer == PivotLayerType.None); if (IsActive) { IsActive = false; IsActive = true; } if (!IsEnabled) { IsActive = false; } } } else { IsActive = IsEnabled = false; } }
void MapImage_MouseDown(Point worldPos, MouseEventArgs e) { string strName; var geom = GetArealGeom(worldPos, out strName); if (geom == null) { return; } //show form PolygonBufZone frm = new PolygonBufZone { ZoneName = strName }; if (frm.ShowDialog() == DialogResult.OK) { if (m_PivotalProvider == null) { return; } if (m_TargetLayerGuid == Guid.Empty) { return; } var eidssUserBufZoneLayer = (EidssUserBufZoneLayer)UserDbLayersManager.GetUserLayer(m_TargetLayerGuid); if (eidssUserBufZoneLayer == null) { return; } var userBufZone = new EidssUserBufZoneLayer.UserBufZone { Geometry = geom, Description = frm.Description, Name = frm.ZoneName, Center = new Point(0, 0) }; eidssUserBufZoneLayer.AddNewZone(userBufZone); MapImage.Refresh(); //UserDbFeature userDbFeature = new UserDbFeature(frm.Name, frm.Description, geom); //DataProvider.AddUserFeature(userDbFeature); //MapImage.Refresh(); } }
void MapImage_MouseDown(SharpMap.Geometries.Point worldPos, MouseEventArgs e) { if (m_TargetLayerGuid == Guid.Empty) { return; } if (!m_IsMoveMode) { var area = GIS_V4.Utils.GeometryUtils.PointToArea(worldPos, 3, MapImage.Map.PixelWidth); var fds = new FeatureDataSet(); var zoneLayer = UserDbLayersManager.GetUserLayer(m_TargetLayerGuid); zoneLayer.DataSource.ExecuteIntersectionQuery(area.GetBoundingBox(), fds); if (fds.Tables.Count <= 0) { m_SelectedFeature = null; return; } if (fds.Tables[0].Rows.Count <= 0) { m_SelectedFeature = null; MapImage.RefreshFromCache(); return; } m_SelectedFeature = fds.Tables[0][0]; MapImage.RefreshFromCache(); } else { //tool in move mode if (e.Button == MouseButtons.Left) { //start shifting on mouse move m_IsShifting = true; m_ShiftBeginPnt = worldPos; m_LastShiftPnt = new SharpMap.Geometries.Point(worldPos.X, worldPos.Y); } } if (m_SelectedFeature != null && e.Button == MouseButtons.Right) { if (m_SelectedFeature.Geometry.GetBoundingBox().Contains(worldPos)) { m_CMenu.Show(MapImage, e.Location); } } }
public static void UpdateZoneLayerDict() { m_ZoneLayerDict.Clear(); var dict = (Dictionary <Guid, string>)UserDbLayersManager.GetLayersNames(UserDbLayerType.BuffZones); foreach (var item in dict) { m_ZoneLayerDict.Add(new KeyValuePairWrapper(item.Key, item.Value)); } //m_ZoneLayerDict = if (ZoneLayerDictUpdated != null) { ZoneLayerDictUpdated(null, EventArgs.Empty); } }
protected override void OnToolActivated() { MapImage.Cursor = Cursors.Cross; MapImage.MouseDown += MapImage_MouseDown; if (m_FirstActivation) { m_MapImage.CreateGraphics(); MapImage.MapRefreshed += MapImage_MapRefreshed; m_CMenu = new ContextMenu(); m_MiProp = new MenuItem(Resources.m_MtSelectBufZones_BZProperties); m_MiDel = new MenuItem(Resources.gis_MtSelectBufZones_BZDelete); m_MiMove = new MenuItem(Resources.gis_MtSelectBufZones_BZMove); m_MiApplyMovement = new MenuItem(Resources.gis_MtSelectBufZones_BZApply); m_MiCancelMovement = new MenuItem(Resources.gis_MtSelectBufZones_BZCancel); m_CMenu.MenuItems.Add(m_MiProp); m_CMenu.MenuItems.Add(m_MiDel); m_CMenu.MenuItems.Add(m_MiMove); m_CMenu.MenuItems.Add(m_MiApplyMovement); m_CMenu.MenuItems.Add(m_MiCancelMovement); m_MiApplyMovement.Visible = false; m_MiCancelMovement.Visible = false; if (UserDbLayersManager.GetLayerMetadata(m_TargetLayerGuid).m_PivotalLayer != PivotLayerType.None || m_IsMoveMode) { m_MiMove.Visible = false; } //MapImage.ContextMenu = m_CMenu; m_MiDel.Click += mi_Del_Click; m_MiProp.Click += mi_Prop_Click; m_MiMove.Click += mi_Move_Click; m_MiApplyMovement.Click += miApplyMovement_Click; m_MiCancelMovement.Click += miCancelMovement_Click; m_MapImage.MouseMove += m_MapImage_MouseMove; m_MapImage.MouseUp += m_MapImage_MouseUp; m_MapImage.OnActiveToolChanged += m_MapImage_OnActiveToolChanged; } m_FirstActivation = false; }
void MapImage_MouseDown(Point worldPos, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { var circleBufZone = new CircleBufZone(); if (circleBufZone.ShowDialog() == DialogResult.OK) { if (m_TargetLayerGuid == Guid.Empty) { return; } var projectedCenter = worldPos; var projectedBufGeom = GIS_V4.Utils.GeometryUtils.CreateBuffer(projectedCenter, circleBufZone.Radius); //var geom = GeometryTransform.TransformGeometry(projectedBufGeom, CoordinateSystems.SphericalMercatorCS, // CoordinateSystems.WGS84); //var center = GeometryTransform.TransformGeometry(projectedCenter, CoordinateSystems.SphericalMercatorCS, // CoordinateSystems.WGS84); if (m_TargetLayerGuid == Guid.Empty) { return; } var eidssUserBufZoneLayer = (EidssUserBufZoneLayer)UserDbLayersManager.GetUserLayer(m_TargetLayerGuid); if (eidssUserBufZoneLayer == null) { return; } var userBufZone = new EidssUserBufZoneLayer.UserBufZone { Geometry = projectedBufGeom, //geom, Description = circleBufZone.Description, Name = circleBufZone.ZoneName, Center = projectedCenter, //center, Radius = circleBufZone.Radius }; eidssUserBufZoneLayer.AddNewZone(userBufZone); MapImage.Refresh(); } circleBufZone.Dispose(); } }
private void PropertiesButton_Click(object sender, EventArgs e) { //get selected layer props var row = bufLayersGridView.GetDataRow(bufLayersGridView.FocusedRowHandle); var layerId = (Guid)row["ID"]; UserDbLayerInfo layerInfo; try { layerInfo = UserDbLayersManager.GetLayerMetadata(layerId); } catch (Exception) { ErrorForm.ShowError(Resources.DbLayersFormFailedToObtainMetadata); return; } var propForm = new BufZonesLayer(); propForm.ZoneLayerName = layerInfo.m_Name; propForm.Description = layerInfo.m_Description; propForm.PivotalLayer = layerInfo.m_PivotalLayer; propForm.PivotComboEnabled = false; if (propForm.ShowDialog(this) == DialogResult.OK) { var msgCaption = Resources.DbLayersForm_MsgBoxCaption; var msgText = Resources.DbLayersForm_SaveMetadataMsg; if (MessageForm.Show(msgText, msgCaption, MessageBoxButtons.YesNo) == DialogResult.No) { return; } layerInfo.m_Name = propForm.ZoneLayerName; layerInfo.m_Description = propForm.Description; try { UserDbLayersManager.UpdateUserLayerMetadata(layerInfo); } catch (Exception) { ErrorForm.ShowErrorDirect(Resources.DbLayersForm_FailedToSaveMetadata); return; } RefreshUserLayers(); } }
/// <summary> /// Remove user layer from DB /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void RemoveButton_Click(object sender, EventArgs e) { using (new TemporaryWaitCursor()) { Guid id = Guid.Empty; String name = string.Empty; if (LayersTabControl.SelectedTabPage == bufZoneTab && bufLayersGridView.SelectedRowsCount == 1) { var selectedRow = bufLayersGridView.GetDataRow(bufLayersGridView.FocusedRowHandle); id = (Guid)selectedRow[0]; name = (String)selectedRow[1]; } if (id == Guid.Empty) { return; } string title = Resources.gis_DbLayersForm_RemoveTitle; string question = string.Format(Resources.gis_DbLayersForm_RemoveQuestion, name); if (MessageForm.Show(question, title, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } try { UserDbLayersManager.DropUserLayer(id); var success_message = string.Format(Resources.gis_DbLayersForm_Remove, name); MessageForm.Show(success_message, title, MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { var error_message = string.Format(Resources.gis_DbLayersForm_RemoveError, name); ErrorForm.ShowError(error_message, ex); } RefreshUserLayers(); CheckAddButtonEnable(this, null); } }
private void DeleteSelected() { var msg = EidssMessages.GetForCurrentLang("gis_Message_DelZone", "Would you like to delete selected buffer zone?"); var caption = EidssMessages.GetForCurrentLang("gis_Caption_DelZone", "Delete buffer zone"); if (MessageForm.Show(msg, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { if (m_SelectedFeature != null) { //MapImage.Cursor = Cursors.WaitCursor; if (!m_IsMoveMode) { ((EidssUserBufZoneLayer)UserDbLayersManager.GetUserLayer(m_TargetLayerGuid)).DeleteZone( (long)m_SelectedFeature["idfsGeoObject"]); } else { ((EidssUserBufZoneLayer)UserDbLayersManager.GetUserLayer(m_LastMovedTargetLayerGuid)).DeleteZone( (long)m_SelectedFeature["idfsGeoObject"]); } m_SelectedFeature = null; if (m_IsMoveMode) { m_MiApplyMovement.Visible = false; m_MiCancelMovement.Visible = false; m_MiMove.Visible = true; } if (UserDbLayersManager.GetLayerMetadata(m_TargetLayerGuid).m_PivotalLayer != PivotLayerType.None) { m_MiMove.Visible = false; } m_IsMoveMode = false; m_MapImage.CommandToolPress -= m_MapImage_CommandToolPress; //MapImage.Cursor = Cursors.Default; MapImage.Refresh(); } } }
//dynamic data private void RefreshUserLayers() { //update buf zones var layers = UserDbLayersManager.GetLayersMetadates(UserDbLayerType.BuffZones); var bufLayersTable = new DataTable("BufLayers"); bufLayersTable.Columns.Add("ID", typeof(Guid)); bufLayersTable.Columns.Add("LayerName"); bufLayersTable.Columns.Add("Description"); bufLayersTable.Columns.Add("User"); bufLayersTable.Columns.Add("CreationDate"); bufLayersTable.Columns.Add("PivotalLayer"); foreach (var info in layers) { var row = bufLayersTable.NewRow(); bufLayersTable.Rows.Add(new object[] { info.m_Id, info.m_Name, info.m_Description, Users.GetUserName(info.m_UserId), //info.m_UserId,// info.m_CreationDate, info.m_PivotalLayer } ); } bufZoneLayersGrid.DataSource = bufLayersTable; if (bufLayersGridView.Columns["ID"] != null) { bufLayersGridView.Columns["ID"].Dispose(); bufLayersGridView.Columns["CreationDate"].DisplayFormat.FormatType = FormatType.DateTime; bufLayersGridView.Columns["CreationDate"].DisplayFormat.FormatString = "d"; bufLayersGridView.Columns["CreationDate"].Caption = Resources.gis_DbLayersForm_BufTable_CreationDate; bufLayersGridView.Columns["LayerName"].Caption = Resources.gis_DbLayersForm_BufTable_LayerName; bufLayersGridView.Columns["Description"].Caption = Resources.gis_DbLayersForm_BufTable_Description; bufLayersGridView.Columns["User"].Caption = Resources.gis_DbLayersForm_BufTable_User; bufLayersGridView.Columns["PivotalLayer"].Caption = Resources.gis_DbLayersForm_BufTable_PivotalLayer; } }
void m_ZoneLayerSelectBarItem_EditValueChanged(object sender, EventArgs e) { if (m_SelfRefresh) { return; } //get selected name var selectedValue = m_ZoneLayerSelectBarItem.EditValue; MapControl.ActiveTool = null; if (OnItemSelect != null) { OnItemSelect(/*(KeyValuePair<Guid, string>)*/ ((KeyValuePairWrapper)selectedValue).ToKeyValuePair()); } if (IsZoneLayerAlreadyAdded((KeyValuePairWrapper)selectedValue)) { return; } //var msg = EidssMessages.Get("gis_Message_AddZoneLayer", "Would you like to add this buffer zone layer?", ModelUserContext.CurrentLanguage); //var caption = EidssMessages.Get("gis_Caption_AddZoneLayer", "Add buffer zone layer: ", ModelUserContext.CurrentLanguage); //var errMsg = EidssMessages.Get("gis_ErrMessage_AddZoneLayer", "Can't add selected buffer zone layer.", ModelUserContext.CurrentLanguage); //var captEx = caption + ((KeyValuePairWrapper) selectedValue).Value.ToString(); //var dialogResult = MessageForm.Show(msg, captEx, MessageBoxButtons.YesNo, // MessageBoxIcon.Question); //if ( dialogResult == DialogResult.Yes) //{ var eidssUserDbLayer = UserDbLayersManager.GetUserLayer( /*((KeyValuePair<Guid, string>) selectedValue).Key*/ ((KeyValuePairWrapper)selectedValue).Key); MapControl.Map.Layers.Add(eidssUserDbLayer); MapControl.Map.Layers.Add(eidssUserDbLayer.LabelLayer); MapControl.Refresh(); ((MapControl)(MapControl.Parent)).RefreshContent(); //} }
void mi_Move_Click(object sender, EventArgs e) { m_IsMoveMode = true; m_LastMovedTargetLayerGuid = m_TargetLayerGuid; m_MiMove.Visible = false; m_MiApplyMovement.Visible = true; m_MiCancelMovement.Visible = true; m_BufZoneUserLayer = UserDbLayersManager.GetUserLayer(m_TargetLayerGuid); m_BufZoneLayer = (EidssUserBufZoneLayer)m_BufZoneUserLayer; m_BufZoneBeforeEdit = m_BufZoneLayer.FeatureRowToStruct(m_SelectedFeature); var wkb = m_SelectedFeature.Geometry.AsBinary();//.AsText(); m_GeomBeforeEdit = Geometry.GeomFromWKB(wkb); SubscribeApplyEvents(); MapImage.RefreshFromCache(); }
private void BufZonesLayer_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e) { if (DialogResult == DialogResult.Cancel) { e.Cancel = false; return; } if (string.IsNullOrEmpty(m_ZoneLayerName)) { WinUtils.ShowMandatoryError(labelControl1.Text); e.Cancel = true; } var dict = (Dictionary <Guid, string>)UserDbLayersManager.GetLayersNames(UserDbLayerType.BuffZones); if (dict.ContainsValue(m_ZoneLayerName)) { ErrorForm.ShowWarningFormat("gisErrBufZoneNameDuplication", "", textName.Text); e.Cancel = true; } }
private DialogResult ApplyMovement(bool clearSelection) { var dialogResult = MessageBox.Show(Resources.gis_MtSelectBufZones_BZApplyWarning, "", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (dialogResult == DialogResult.Yes) { m_IsMoveMode = false; //apply changes m_MiMove.Visible = true; m_MiApplyMovement.Visible = false; m_MiCancelMovement.Visible = false; if (UserDbLayersManager.GetLayerMetadata(m_TargetLayerGuid).m_PivotalLayer != PivotLayerType.None || m_IsMoveMode) { m_MiMove.Visible = false; } if (clearSelection) { m_SelectedFeature = null; } m_GeomBeforeEdit = null; MapImage.RefreshFromCache(); UnsubscribeApplyEvents(); } else if (dialogResult == DialogResult.No) { m_IsMoveMode = false; UndoMovement(clearSelection); } return(dialogResult); }
void MapImage_MouseDown(Point worldPos, MouseEventArgs e) { switch (PivotalType) { case PivotLayerType.Settlements: m_PivotalProvider = new EidssSqlServer2008(SystemLayerNames.Settlements); break; case PivotLayerType.AvrPoints: if (Content.AVRLayer != null) { m_PivotalProvider = Content.AVRLayer.DataSource; } break; default: m_PivotalProvider = null; break; } string strName; var nearestPoint = GetNearestPoint(worldPos, out strName); if (nearestPoint == null) { return; } //show form var frm = new CircleBufZone { ZoneName = strName }; if (frm.ShowDialog() == DialogResult.OK) { if (m_PivotalProvider == null) { return; } var projectedCenter = nearestPoint; //var projectedCenter = GeometryTransform.TransformGeometry(nearestPoint, CoordinateSystems.WGS84, // CoordinateSystems.SphericalMercatorCS); var projectedBufGeom = GIS_V4.Utils.GeometryUtils.CreateBuffer(projectedCenter, frm.Radius); //var geom = GeometryTransform.TransformGeometry(projectedBufGeom, CoordinateSystems.SphericalMercatorCS, // CoordinateSystems.WGS84); //var center = GeometryTransform.TransformGeometry(projectedCenter, CoordinateSystems.SphericalMercatorCS, // CoordinateSystems.WGS84); if (m_TargetLayerGuid == Guid.Empty) { return; } var eidssUserBufZoneLayer = (EidssUserBufZoneLayer)UserDbLayersManager.GetUserLayer(m_TargetLayerGuid); if (eidssUserBufZoneLayer == null) { return; } var userBufZone = new EidssUserBufZoneLayer.UserBufZone { Geometry = projectedBufGeom, //geom, Description = frm.Description, Name = frm.ZoneName, Center = projectedCenter, //center, Radius = frm.Radius }; eidssUserBufZoneLayer.AddNewZone(userBufZone); MapImage.Refresh(); } }
void MapImage_MouseDoubleClick(object sender, MouseEventArgs e) { if (m_ToolPhase == ToolPhase.WaitFirst) { return; } //if (DataProvider == null) NoDataProvider(); //compleate polygon if (m_Vertices.Count < 3) { return; } m_Vertices.Add(m_Vertices[0]); var linearRing = new LinearRing(m_Vertices); Geometry polygon = new Polygon(linearRing); //polygon = GeometryTransform.TransformGeometry(polygon, CoordinateSystems.SphericalMercatorCS, // CoordinateSystems.WGS84); m_ToolPhase = ToolPhase.WaitFirst; var connectionString = ConnectionManager.DefaultInstance.ConnectionString; var connection = new SqlConnection(connectionString); var valid = SqlExecHelper.SqlGeometryValidation(connection, polygon); if (!valid) { MessageForm.Show(Resources.gis_MtIndependentPolygonBufferZone_CheckValidityMsg); } else { //show form var frm = new PolygonBufZone(); //frm.ZoneLayer = string.Empty; if (frm.ShowDialog() == DialogResult.OK) { if (m_TargetLayerGuid == Guid.Empty) { return; } var eidssUserBufZoneLayer = (EidssUserBufZoneLayer)UserDbLayersManager.GetUserLayer(m_TargetLayerGuid); if (eidssUserBufZoneLayer == null) { return; } var userBufZone = new EidssUserBufZoneLayer.UserBufZone { Geometry = polygon, Description = frm.Description, Name = frm.ZoneName, //Center = new Point(0, 0) }; eidssUserBufZoneLayer.AddNewZone(userBufZone); } } MapImage.Refresh(); m_Vertices.Clear(); m_Points.Clear(); m_LastMousePosition = System.Drawing.Point.Empty; }