Exemple #1
0
        private void Verify()
        {
            IQueryFilter   pQueryFilter;
            IFeatureClass  pFeatCls;
            IFeatureCursor pFeatCursor;
            IFeature       pFeat;
            IFeatureLayer  pFeatLayer;


            if (this.txtExpress.Text == "")
            {
                //ClsDeclare.g_ErrorHandler.DisplayInformation("请输入表达式",false,"确定",null);
                return;
            }
            pFeatLayer = ClsSelectQuery.FunFindFeatureLayerByName(layerName, ClsDeclare.g_pMap);
            if (pFeatLayer == null)
            {
                return;
            }
            try
            {
                pFeatCls                 = pFeatLayer.FeatureClass;
                pQueryFilter             = new QueryFilterClass();
                pQueryFilter.SubFields   = "*";
                pQueryFilter.WhereClause = this.txtExpress.Text.Trim();
                pFeatCls.Search(pQueryFilter, false);
                pFeatCursor = pFeatCls.Search(pQueryFilter, false);
                pFeat       = pFeatCursor.NextFeature();

                if (pFeat == null)
                {
                    //ClsDeclare.g_ErrorHandler.DisplayInformation("此表达式搜索不到要素,请检查表达式!", false, null, null);
                }
            }
            catch (System.Exception ex)
            {
                MessageBoxEx.Show("错误", ex.StackTrace, MessageBoxButtons.OK, MessageBoxIcon.Error);
                //ClsDeclare.g_ErrorHandler.HandleError(true, null, 0, null, ex.StackTrace);
                throw;
            }
            finally
            {
                pQueryFilter = null;
                pFeatCls     = null;
                pFeatCursor  = null;
                pFeat        = null;
            }
        }
Exemple #2
0
        private void btnVerify_Click(object sender, EventArgs e)
        {
            IQueryFilter   pQueryFilter;
            IFeatureClass  pFeatCls;
            IFeatureCursor pFeatCursor;
            IFeature       pFeat;
            IFeatureLayer  pFeatLayer;

            if (this.txtExpress.Text == "")
            {
                //ClsDeclare.g_ErrorHandler.DisplayInformation("请输入表达式", false, "确定",null);
                return;
            }
            pFeatLayer = ClsSelectQuery.FunFindFeatureLayerByName(layerName, ClsDeclare.g_pMap);
            if (pFeatLayer == null)
            {
                return;
            }
            try
            {
                pFeatCls                 = pFeatLayer.FeatureClass;
                pQueryFilter             = new QueryFilterClass();
                pQueryFilter.SubFields   = "*";
                pQueryFilter.WhereClause = this.txtExpress.Text.Trim();
                pFeatCls.Search(pQueryFilter, false);
                pFeatCursor = pFeatCls.Search(pQueryFilter, false);
                pFeat       = pFeatCursor.NextFeature();

                //if (pFeat != null)
                //ClsDeclare.g_ErrorHandler.DisplayInformation("表达式正确!", false, null, null);
                //else
                //ClsDeclare.g_ErrorHandler.DisplayInformation("此表达式搜索不到要素,请检查表达式!", false, null, null);
            }
            catch (Exception)
            {
                //ClsDeclare.g_ErrorHandler.DisplayInformation("查询表达式不合法!", false, null, null);
                MessageBoxEx.Show("查询表达式不合法!请修改");
            }
            finally
            {
                pQueryFilter = null;
                pFeatCls     = null;
                pFeatCursor  = null;
                pFeat        = null;
            }
        }
Exemple #3
0
        //private void InitCtlComboSelectMethod()
        //{
        //    cboSelectMethod.Items.Add("创建一个新的选择结果");
        //    cboSelectMethod.Items.Add("添加到当前选择集中");
        //    cboSelectMethod.Items.Add("从当前选择结果中移除");
        //    cboSelectMethod.Items.Add("从当前选择结果中选择");
        //    cboSelectMethod.Text = cboSelectMethod.Items[0].ToString();


        //}
        //private void InitCtlComboLayer()
        //{
        //    try
        //    {
        //        int i;
        //        ILayer pLayer;
        //        IFeatureLayer pFeatlayer;
        //        IFeatureClass pFeatCls;
        //        Collection pLyrCol;
        //        Collection LyrCol=null;
        //        if (m_FeatClsCln == null)
        //        {
        //            pLyrCol = ClsSelectQuery.FunGetFeaLyrCol(ClsDeclare.g_pMap, null,LyrCol);
        //            for (i = 1; i <= pLyrCol.Count; i++)
        //            {
        //                pLayer = pLyrCol[i] as ILayer;
        //                if (pLayer is IFeatureLayer)
        //                {
        //                    IFeatureLayer pFeatureLayer;
        //                    pFeatureLayer = pLayer as IFeatureLayer;
        //                    if (pFeatureLayer.Selectable)
        //                        cboLayerList.Items.Add(pLayer.Name);
        //                }
        //            }

        //        }
        //        else
        //        {
        //            for (i = 1; i <= m_FeatClsCln.Count; i++)
        //            {
        //                pLayer = m_FeatClsCln[i] as ILayer;
        //                if (pLayer is IFeatureLayer)
        //                {
        //                    pFeatlayer = pLayer as IFeatureLayer;
        //                    pFeatCls = pFeatlayer.FeatureClass;
        //                    cboLayerList.Items.Add(pFeatCls.AliasName);
        //                }

        //            }

        //        }

        //        if(cboLayerList.Items.Count>0)
        //            cboLayerList.Text=cboLayerList.Items[0].ToString();
        //    }
        //    catch (Exception ex)
        //    {
        //        MessageBoxEx.Show("错误", ex.StackTrace, MessageBoxButtons.OK, MessageBoxIcon.Error);
        //        throw;
        //    }

        //}
        private void ListField()
        {
            try
            {
                ILayer        pLayer;
                IFeatureLayer pFeatlayer;
                IFeatureClass pFeatCls;
                int           i;

                if (m_FeatClsCln == null)
                {
                    m_pCurrentLayer   = ClsSelectQuery.FunFindFeatureLayerByName(layerName, ClsDeclare.g_pMap);
                    m_pCurrentFeatCls = m_pCurrentLayer.FeatureClass;
                }
                else
                {
                    for (i = 1; i <= m_FeatClsCln.Count; i++)
                    {
                        pLayer = m_FeatClsCln[i] as ILayer;
                        if (pLayer is IFeatureLayer)
                        {
                            pFeatlayer = pLayer as IFeatureLayer;
                            pFeatCls   = pFeatlayer.FeatureClass;
                            if (pFeatCls.AliasName == layerName)
                            {
                                m_pCurrentFeatCls = pFeatCls;
                                break;
                            }
                        }
                    }
                }
                lstField.Items.Clear();
                for (i = 0; i < m_pCurrentFeatCls.Fields.FieldCount; i++)
                {
                    if (Convert.ToUInt32(m_pCurrentFeatCls.Fields.get_Field(i).Type) < 5 && m_pCurrentFeatCls.Fields.get_Field(i).Editable == true)
                    {
                        lstField.Items.Add(m_pCurrentFeatCls.Fields.get_Field(i).AliasName + "【" + m_pCurrentFeatCls.Fields.get_Field(i).Name + "】");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBoxEx.Show("错误", ex.StackTrace, MessageBoxButtons.OK, MessageBoxIcon.Error);
                throw;
            }
        }
Exemple #4
0
        private void btnApply_Click(object sender, EventArgs e)
        {
            try
            {
                Verify();
                string strQuery;
                strQuery = this.txtExpress.Text;
                if (strQuery == "")
                {
                    return;
                }
                ILayer pLayer = null;
                if (layerName != "" || layerName != null)
                {
                    pLayer = ClsSelectQuery.FunFindFeatureLayerByName(layerName, ClsDeclare.g_pMap);
                }
                if (pLayer == null)
                {
                    return;
                }
                IFeatureLayer pFeatLayer;
                pFeatLayer = pLayer as IFeatureLayer;

                if (pFeatLayer.Visible == false)
                {
                }
                //ClsDeclare.g_ErrorHandler.DisplayInformation("请选择可见图层",false,"确定",null);
                IFeatureSelection pFeatureSelection;
                pFeatureSelection = pFeatLayer as IFeatureSelection;

                IQueryFilter pQueryFilter = new QueryFilterClass();
                pQueryFilter.WhereClause = strQuery;

                esriSelectionResultEnum SelType;
                SelType = esriSelectionResultEnum.esriSelectionResultNew;

                //switch (this.cboSelectMethod.Text)
                //{
                //    case "创建一个新的选择结果":
                //        {
                //        if(ClsDeclare.g_pMap.SelectionCount>0)
                //            ClsDeclare.g_pMap.ClearSelection();
                //        SelType = esriSelectionResultEnum.esriSelectionResultNew;

                //        }
                //        break;
                //    case "添加到当前选择集中":
                //        SelType = esriSelectionResultEnum.esriSelectionResultAdd;
                //        break;
                //    case "从当前选择结果中移除":
                //        SelType = esriSelectionResultEnum.esriSelectionResultSubtract;
                //        break;
                //    case "从当前选择结果中选择":
                //        SelType = esriSelectionResultEnum.esriSelectionResultAnd;
                //        break;
                //}
                if (pFeatLayer.Selectable)
                {
                    pFeatureSelection.SelectFeatures(pQueryFilter, SelType, false);
                }

                IActiveView pActiveView;
                pActiveView = ClsDeclare.g_pMap as IActiveView;
                pActiveView.Refresh();

                IFeatureClass       pFeatCls;
                IGeometryCollection pGeometryCol;
                IGeometryBag        pGeometryBag;
                IEnumIDs            pEnumIDs;
                IFeature            pFeature;
                int iOBJID;

                pGeometryCol = new GeometryBagClass();
                pGeometryBag = pGeometryCol as IGeometryBag;
                pFeatCls     = pFeatLayer.FeatureClass;
                pEnumIDs     = pFeatureSelection.SelectionSet.IDs;
                iOBJID       = pEnumIDs.Next();
                object Missing  = Type.Missing;
                object Missing1 = Type.Missing;
                while (iOBJID != -1)
                {
                    pFeature = pFeatCls.GetFeature(iOBJID);
                    pGeometryCol.AddGeometry(pFeature.Shape, ref Missing, ref Missing1);
                    iOBJID = pEnumIDs.Next();
                }

                IHookActions pHookActions;
                IHookHelper  pHookHelper;
                pHookHelper      = new HookHelperClass();
                pHookHelper.Hook = ClsDeclare.g_Sys.MapControl.Object;
                pHookActions     = pHookHelper as IHookActions;
                if (pHookActions.get_ActionSupported(pGeometryBag.Envelope, esriHookActions.esriHookActionsPan))
                {
                    pHookActions.DoAction(pGeometryBag.Envelope, esriHookActions.esriHookActionsPan);
                }
                Application.DoEvents();
            }
            catch (Exception ex)
            {
                MessageBoxEx.Show("错误", ex.StackTrace, MessageBoxButtons.OK, MessageBoxIcon.Error);
                //ClsDeclare.g_ErrorHandler.HandleError(true,null,0,null,ex.StackTrace);
                throw;
            }
        }