मेरे पास एक Winforms ऐप है जिसमें RichTextBox है।Winforms RichTextBox: मैं कैसे निर्धारित कर सकता हूं कि टेक्स्ट की कितनी पंक्तियां दिखाई दे रही हैं?
मैं कैसे निर्धारित कर सकता हूं कि पाठ की कितनी पंक्तियां प्रदर्शित की जाती हैं, वर्तमान में दिखाई दे रही हैं?
कारण: मैं रिचटेक्स्टबॉक्स के बीच में देखभाल को स्क्रॉल करना चाहता हूं। मैं RichTextBox.ScrollToCaret() का उपयोग कर सकता हूं, लेकिन यह रिचटेक्स्टबॉक्स के शीर्ष पर कैरेट रखता है। मुझे लगता है, अगर मुझे पता है कि कितनी लाइनें प्रदर्शित की जाती हैं, तो मैं कैरेट "बैक" एन/2 लाइनों को ले जा सकता हूं, फिर स्क्रॉलटोकैर() को कॉल कर सकता हूं, फिर मूल कैरेट स्थिति को पुनर्स्थापित कर सकता हूं।
संपादित करें:
मैंने पाया EM_GETLINECOUNT, जो मैंने सोचा था कि जवाब था, दस्तावेज़ को छोड़कर कहते हैं: EM_GETLINECOUNT संदेश पाठ लाइनों की कुल संख्या ही नहीं, लाइनों की संख्या है कि वर्तमान में दिखाई दे रहे हैं को पुन: प्राप्त ।
टैंटालाइजली, EM_GETFIRSTVISIBLELINE भी है, जो पहली दृश्यमान रेखा प्राप्त करता है, लेकिन मुझे GETLASTVISIBLELINE नहीं मिला। ??
संबंधित:
How can I scroll the caret to the middle of the RichTextBox?
बस रुचि रखते हैं - आप इस जानकारी के साथ क्या करने जा रहे हैं? आपको एहसास है कि यह परिवर्तनीय हो सकता है, क्योंकि आपके पास पूरे टेक्स्ट में अलग-अलग फोंट और पैडिंग हो सकती है। –
यह एक कस्टम आरटीबी बनाने में चला गया जो लाइन नंबर प्रदर्शित करता है: http://stackoverflow.com/questions/2567263/how-to-show-number-of-a-line-in-a-richtextbox-c/2668264#2668264 – Cheeso