AE异常之——代码不访问

最近学习ArcEngine开发遇到了奇怪的异常,代码不访问。检查了好几次,代码在我这半路出家的人看来没有逻辑错误,但是就是没有画线。逐步运行的时候,发现运行至绿色的代码的地方就跳出了本过程。检查再三,在绿色的代码处加上了try{ }  catch{ } ,终于抛出了异常。异常为“未将对象引用设置到对象的实例”。 检查发现,异常设置的复选框没有选中(如下所示)(不知道为什么不是默认选中的),VS不自动的抛出异常,只是遇到了无法解决的问题自动跳出了过程。抛出异常后,错误就比较容易修改了。将错误处的语句改为 :IPolyline pDrawPolyline = new ESRI.ArcGIS.Geometry.PolylineClass();  

并将引发异常的复选框全部选中。

bool DrawPolylineOrNot = false;    //是否画线

        int DrawPolylineClickCount;    //记录画线时候画的是第几个点

        IPolyline pDrawPolyline = null;    //错误

 

 private void axMapControl1_OnMouseDown(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnMouseDownEvent e)

        {

            if (e.button == 1)

            {

                IPoint pPoint = new PointClass();

                pPoint.PutCoords(e.mapX, e.mapY);

 

                //绘制剖面用的曲线

                if (DrawPolylineOrNot)

                {

                    //第一次点击,设置起始点

                    if (DrawPolylineClickCount == 0)

                    {

                            pDrawPolyline.FromPoint = pPoint;

                        DrawPolylineClickCount++;

                    }

                    else if (DrawPolylineClickCount == 1)

                    {

                        pDrawPolyline.ToPoint = pPoint;

                        DrawPolylineClickCount = 0;

                        DrawPolylineOrNot = false;

                        axMapControl1.DrawShape(pDrawPolyline);

                        axMapControl1.Refresh();

                    }

                }

            }

        }

posted @ 2012-04-19 20:29  DayDreamInGIS  阅读(833)  评论(0编辑  收藏  举报