2009-06-27 11 views
5

में कैरेट की स्थिति ढूंढना मुझे टेक्स्टबॉक्स में कैरेट की स्थिति जाननी है, इसलिए मैं इसके पास एक संदर्भ मेनू पॉप अप कर सकता हूं। मैं अपना प्लेसमेंट कैसे ढूंढूं (चरित्र सूचकांक नहीं)?टेक्स्टबॉक्स

उत्तर

6

मिला this article वर्णन करता है कि मुझे क्या करना है। बाहर निकलता है आप टेक्स्टबॉक्स और प्लेसमेंट रेक्टेंगल को GetRectFromCharacterIndex से प्लेसमेंट लक्ष्य का सेट कर सकते हैं और यह काम करेगा।

+0

अगर कोई सोच रहा है कि _RichTextBox_ के साथ ऐसा कैसे करें: 'richTextBox.CaretPosition.GetCharacterRect (LogicalDirection.Forward)' – JobaDiniz

1

this example देखें।

+0

मैं कैरेट के पास संदर्भ मेनू को उपयोगकर्ता प्रकार (इंटेलिजेंस की तरह) के रूप में पॉप अप करना चाहता हूं, न केवल डिफ़ॉल्ट संदर्भ मेनू को प्रतिस्थापित करता हूं। – RandomEngy

0

मुझे लगता है कि आपको कैरेट की कैरेक्टर इंडेक्स प्राप्त करनी होगी और फिर उसे कैरेट के बाईं ओर टेक्स्ट पर TextRenderer.MeasureText() को कॉल करके पिक्सेल समन्वय में बदलना होगा। यदि आपका टेक्स्टबॉक्स बहुमुखी है तो यह स्पष्ट रूप से अधिक जटिल है। क्या यह?

+0

सौभाग्य से यह एक पंक्ति है। मैं मापने वाली पाठ चीज़ को एक शॉट दूंगा। – RandomEngy

+0

TextRenderer.MeasureText() WinForms के लिए प्रतीत होता है, WPF नहीं। मुझे डब्ल्यूपीएफ के बराबर मिला, लेकिन मुझे टेक्स्टबॉक्स की स्थिति को पकड़ने में कठिनाई हो रही है, मुझे संदर्भ मेनू के लिए एंकर पॉइंट की गणना करने की आवश्यकता है। – RandomEngy

+0

ओह, डब्ल्यूपीएफ। भले ही आपने डब्ल्यूपीएफ टैग का इस्तेमाल किया हो, फिर भी आपको इस तरह की जानकारी में इस तरह की जानकारी भी होनी चाहिए। – Fantius

संबंधित मुद्दे