.NET

.NET

Reply
Valued Contributor
dynamicscope
Posts: 95
Registered: ‎04-04-2012
Message 1 of 3 (381 Views)
Accepted Solution

Prompt message issue with a modeless dialog

381 Views, 2 Replies
09-27-2012 11:26 PM

Base: Object ARX 2010

Language: C# (.NET Frame 3.5)

 

Hi,

 

I made a modeless dialog  (WinForm) to use as a toolbar. The dialog has a button that "Prompt Entity" from the drawing.

 

ex)

PromptEntityOptions peo = new PromptEntityOption("Select Entity:");

PromptEntityResult per = ed.GetEntity(peo);

 

But this function is not wokring as I intended. When I click this button, the prompt message (message that sticks on the mouse cursor) does not show up immediately.

 

The message appears when I click the drawing window twice.

 

This behavior is not good since the user would not know if the button is clicked properly. (if the prompt message does not show up immediately.)

 

It seems like a focus (window) issue to me.

 

How could I solve this issue?

Any idea?

 

Regards,

 

Jake

 

I saw this in one other topic. Try to use Autodesk.AutoCAD.Internal.Utils.SetFocusToDwgView()

Valued Contributor
bojko108
Posts: 61
Registered: ‎01-23-2011
Message 2 of 3 (365 Views)

Re: Prompt message issue with a modeless dialog

09-28-2012 03:40 AM in reply to: dynamicscope

I saw this in one other topic. Try to use Autodesk.AutoCAD.Internal.Utils.SetFocusToDwgView()

Distinguished Contributor
Irvin
Posts: 112
Registered: ‎04-22-2009
Message 3 of 3 (359 Views)

Re: Prompt message issue with a modeless dialog

09-28-2012 04:48 AM in reply to: dynamicscope

There are other Methods than using the setfocus to dwg:

 

Look at the next snipped:

 

private void btnPickPoint_Click(object sender, EventArgs e)
        {
            using (EditorUserInteraction edUsrInt = ed.StartUserInteraction(this))
            {
                // Code to select a point
PromptPointOptions prPtOpts = new PromptPointOptions("\nSpecify insertion base point:"); PromptPointResult prPtRes = ed.GetPoint(prPtOpts); _point = prPtRes.Value; tbX.Text = _point.X.ToString(); tbY.Text = _point.Y.ToString(); tbZ.Text = _point.Z.ToString(); // End the UserInteraction. edUsrInt.End(); //this.Focus(); } }

 Hope this will help!

 

Irvin

Post to the Community

Have questions about Autodesk products? Ask the community.

New Post
Announcements
Do you have 60 seconds to spare? The Autodesk Community Team is revamping our site ranking system and we want your feedback! Please click here to launch the 5 question survey. As always your input is greatly appreciated.