2017-10-20 1 views
0

Ich habe eine RichTextBox mit einem SpellCheck implementiert. Ich möchte den Cursor/Caret genau dort platzieren, wo der Rechtsklick positioniert ist. Zum Beispiel, wenn ich zwei falsch geschriebene Worte wie:Wie wird das Caret auf die Position von RightClick gesetzt?

I belive dies wroking

und ich einen Rechtsklick auf "belive", das Kontextmenü, das auf basiert eröffnet Wroking, weil mein Cursor zuletzt dort positioniert war. Um die Liste der vorgeschlagenen Wörter von "belive" zu öffnen, muss ich zuerst auf das Wort klicken, um das Caret zu positionieren und dann RightClick.

Um es klar zu machen, möchte ich das Caret automatisch positionieren, wo sich mein Cursor auf RightClick befindet. Ist es möglich, das zu tun? Danke im Voraus.

+1

Können zeigen Sie den Code, den Sie zur Zeit die Mausposition zu erfassen haben und das Kontextmenü zeigen? Der Standard-Rechtsklick verschiebt den Cursor und zeigt das Kontextmenü an, in dem Sie mit der rechten Maustaste klicken, so dass es sich anhört, als ob Sie dies überschrieben haben. – Equalsk

Antwort

0

fand ich einen Weg, um das Problem zu lösen, indem die mouseposition auf MouseRightButtonUp Ereignis bekommen und in eine Textpointer zuzuschreiben. Von dort kann ich den genauen Bereich des aktuellen Wortes auswählen und dann etwas damit machen.

Point mousePoint = Mouse.GetPosition(textBox);

TextPointer current = textBox.GetPositionFromPoint(mousePoint, true);

Verwandte Themen