.NET

Reply
Contributor
lukasz.taraszka
Posts: 13
Registered: ‎10-07-2011
Message 1 of 3 (599 Views)
Accepted Solution

Refresh drawing when modal form is running

599 Views, 2 Replies
01-03-2012 12:52 AM

Hello everyone

 

Is it possible to refresh drawing content when modal form is running?

 

I placed sample project in attachment.


There is simple form with only one button.

 

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Class1.DrawLineOnScreen()
    End Sub

 

After button is pressed, application prompting user for picking 2 points, and draw a line (based on picked points).

 

Public Shared Sub DrawLineOnScreen()
        Dim editor As Editor = Application.DocumentManager.MdiActiveDocument.Editor

        Dim pFirst As PromptPointOptions = New PromptPointOptions("First point: ")
        Dim rFirst As PromptPointResult = editor.GetPoint(pFirst)

        Dim pSecond As PromptPointOptions = New PromptPointOptions("Second point: ")
        Dim rSecond As PromptPointResult = editor.GetPoint(pSecond)

        If rFirst.Status = PromptStatus.OK AndAlso rSecond.Status = PromptStatus.OK Then

            Dim line As Line = New Line(rFirst.Value, rSecond.Value)

            Dim tr As Transaction =                Application.DocumentManager.MdiActiveDocument.TransactionManager.StartTransaction
            Using tr
                Dim modelSpace As BlockTableRecord = tr.GetObject(Application.DocumentManager.MdiActiveDocument.Database.CurrentSpaceId, OpenMode.ForWrite)
                modelSpace.AppendEntity(line)
                tr.AddNewlyCreatedDBObject(line, True)
                tr.Commit()
            End Using

        End If
    End Sub

 

Problem is that line had been added to transaction (to Model Space block table record) but nothing change on a drawing. Line will appear on a drawing after closing the form.

 

In opposite situation, without using modal form (only console) everyting works fine.

 

<CommandMethod("DrawLine", CommandFlags.Modal)> _
        Public Sub DrawLine()
            Class1.DrawLineOnScreen()
        End Sub

 

Mentor
SENL1362
Posts: 164
Registered: ‎07-20-2011
Message 2 of 3 (593 Views)

Re: Refresh drawing when modal form is running

01-03-2012 03:12 AM in reply to: lukasz.taraszka

did you tried editor.Regen()

 

c# sample:

       private void Select_Click(object sender, EventArgs e)
        {
            Document doc = Acad.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            Editor ed = doc.Editor;
            using (EditorUserInteraction preventFlikkering = ed.StartUserInteraction(this))
            {
                PromptPointOptions getPntPrmpt = new PromptPointOptions("\nGet Center");
                //Modal Form: will hide because of ed.GetPoint
                PromptPointResult getPnt = ed.GetPoint(getPntPrmpt);
                ed.WriteMessage("\nPoint: {0}", getPnt.Value);
                ed.Regen();
                preventFlikkering.End();
            }
        }

Contributor
lukasz.taraszka
Posts: 13
Registered: ‎10-07-2011
Message 3 of 3 (587 Views)

Re: Refresh drawing when modal form is running

01-03-2012 03:55 AM in reply to: SENL1362

No, I have no idea about this method. I tried UpdateScreen but it didn't work.

 

Your post resolved my problem. 

 

Thank You very much.

You are not logged in.

Log into access your profile, ask and answer questions, share ideas and more. Haven't signed up yet? Register

Announcements
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.

Need installation help?

Start with some of our most frequented solutions to get help installing your software.

Ask the Community