जब C # WinForms टेक्स्टबॉक्स फोकस प्राप्त करता है, तो मैं चाहता हूं कि यह आपके ब्राउज़र के एड्रेस बार की तरह व्यवहार करे।
यह देखने के लिए कि मेरा क्या मतलब है, अपने वेब ब्राउजर के एड्रेस बार में क्लिक करें। आप निम्नलिखित व्यवहार पर ध्यान देंगे:
- यदि टेक्स्टबॉक्स पहले से फोकस नहीं किया गया था, तो टेक्स्टबॉक्स में क्लिक करके सभी टेक्स्ट को चुनना चाहिए।
- टेक्स्ट बॉक्स में माउस को नीचे की ओर खींचें और केवल उस पाठ का चयन करें जिसे मैंने माउस के साथ हाइलाइट किया है।
- यदि टेक्स्टबॉक्स पहले से ही केंद्रित है, तो क्लिक करने से सभी टेक्स्ट का चयन नहीं होता है।
- टेक्स्टबॉक्स को प्रोग्रामेटिक रूप से या कीबोर्ड टेबिंग के माध्यम से फोकस करके सभी टेक्स्ट को चुनना चाहिए।
मैं WinForms में ठीक यही करना चाहता हूं।
सबसे तेजी से बंदूक चेतावनी: जवाब देने से पहले कृपया पढ़ें! धन्यवाद दोस्तों। :-)
कॉलिंग .SelectAll () .Enter या .GotFocus घटनाओं के दौरान काम नहीं करेगा क्योंकि यदि उपयोगकर्ता ने टेक्स्टबॉक्स पर क्लिक किया है, तो कैरट को रखा जाएगा जहां उसने क्लिक किया, इस प्रकार सभी पाठ को हटा दिया गया।
कॉलिंग .SelectAll () .Click इवेंट के दौरान काम नहीं करेगा क्योंकि उपयोगकर्ता माउस के साथ किसी भी पाठ का चयन करने में सक्षम नहीं होगा; .SelectAll () कॉल उपयोगकर्ता के पाठ चयन को अधिलेखित करता रहेगा।
StartInvoke ((Action) textbox.SelectAll) को फ़ोकस / एंटर इवेंट पर कॉल करने से काम नहीं चलता है क्योंकि यह नियम # 2 को तोड़ता है, यह फ़ोकस पर उपयोगकर्ता के चयन को ओवरराइड करता रहेगा।