2013-08-05 2 views
0

J'ai écrit ce code:Autocad gestionnaire d'événements clic droit

int count = 1; 

while (true) 
{ 

    pointOptions.Message = "\nEnter the end point of the line: "; 
    pointOptions.UseBasePoint = true; 
    pointOptions.BasePoint = drawnLine.EndPoint; 
    pointResult = editor.GetPoint(pointOptions); 

    if (pointResult.Status == PromptStatus.Cancel) 
    { 
     break; 
    } 

    if (count == 1) 
    { 
     drawnLine.AddVertexAt(count, pointResult.Value.Convert2d(new Plane()), 0, 0, 0); 
     blockTableRecord.AppendEntity(drawnLine); 
     transaction.AddNewlyCreatedDBObject(drawnLine, true); 
    } 
    else 
    { 
     stretch(drawnLine, pointResult.Value, Point3d.Origin); 
    } 

    editor.Regen(); 

    count++; 
} 

Le code fonctionne très bien mais pour coplete le dessin que je dois taper ESC, je veux faire un clic droit ou barre d'espace Cliquez pour fermer mon loop.Can je fais ça?

Répondre

1

Il était en PromptPointOptions Voir un exemple de code ci-dessous:

// Set promptOptions 
var pointOptions = new PromptPointOptions("\nSelect Next Point: "); 
pointOptions.SetMessageAndKeywords("\nSelect Next Point: or Exit [Y]","Yes"); 
pointOptions.AppendKeywordsToMessage = true; 
pointOptions.AllowArbitraryInput = true; 
pointOptions.UseBasePoint = true; 
pointOptions.BasePoint = drawnLine.EndPoint; 

// While user wants to draw the polyline 
while (pointResult.Status != PromptStatus.Keyword) 
{ 
// Get point 
pointResult = Editor.GetPoint(pointOptions); 

// stop creating polyline 
if (pointResult.Status == PromptStatus.Cancel) 
    break; 

if (count == 1) { 

    // Get base point and add to the modelspace 
    drawnLine.AddVertexAt(count, pointResult.Value.Convert2d(new Plane()), 0, 0, 0); 
    blockTableRecord.AppendEntity(drawnLine); 
    transaction.AddNewlyCreatedDBObject(drawnLine, true); 
} else 

    // Grow the polyline 
    stretch(drawnLine, pointResult.Value, Point3d.Origin); 

// Regen 
editor.Regen(); 

count++; 
} 

ce que vous recherchez était PromptPointOptions.SetMessageAndKeywords et en changeant votre boucle eval vous sortirez lorsque l'utilisateur sélectionne oui et vous pouvez définir que pour un barre d'espace presse.

Espérons que cela aide :)

+0

L'utilisation de impt et de pointOptions est la variable. –

+0

Je vais attendre alors :) –

+0

@AntonioPapa Mis à jour. –