Select to view content in your preferred language

Cannot display graphic elements through Desktop Automation application

722
1
01-07-2013 11:42 AM
FrankIndome
Emerging Contributor
I'm using the Desktop Automation sample code for C# for ArcGIS 10.1 running on Windows 7. I have a main form with buttons for opening a ArcMap MXD, closing it and displaying number of selected features in the first TOC layer. I also have a button on the main form that creates a simple graphic element...in my sample code I'm trying to display a graphic text element "Hello World" at the centre of the view extent.

The issue I have is that the text element never gets displayed after its created. However after saving and closing the MXD and re-opening it I see the graphic text displayed. Is there anything I'm missing in the code that prevents the graphic element from being displayed after it is created? This is happening to any graphic element I create through custom code.

Below is the sample code:

        private void button3_Click(object sender, EventArgs e)
        {
            IGraphicsContainer graphicsContainer = m_MxDoc.FocusMap as IGraphicsContainer;
            IElement element = new TextElementClass();
            ITextElement textElement = element as ITextElement;
            IActiveView activeView = m_MxDoc.FocusMap as IActiveView;

            //Create a point as the shape of the element.
            IPoint point = new PointClass();
            point.X = activeView.Extent.XMin + (activeView.Extent.Width / 2);
            point.Y = activeView.Extent.YMin + (activeView.Extent.Height / 2);
            element.Geometry = point;
            textElement.Text = "Hello World";
            graphicsContainer.AddElement(element, 0);

            //Flag the new text to invalidate.
            activeView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
        }

Any help will be appreciated.

thanks
0 Kudos
1 Reply
BrentHoskisson
Frequent Contributor
I don't see in your code where you set textElement.Symbol.  That could be your problem.

Good Luck
0 Kudos