2008-11-26 13 views
5

में लिंक मेरे पास एक कस्टम जैबर आईएम क्लाइंट है और मुझे लिंक के साथ समस्या है। जब http://something.com जैसे कुछ दर्ज किया गया है, तो मैं इसे संदेश विंडो में एक लिंक के रूप में दिखाना चाहता हूं। संदेश विंडो एक मानक सी # टेक्स्टबॉक्स है। क्या इसे एक लिंक के रूप में चिह्नित करने का कोई तरीका है ताकि इसे क्लिक किया जा सके और वेबपृष्ठ खोल सके?सी # टेक्स्टबॉक्स

धन्यवाद

+0

यह आपको शुरू कर देगा .. [http://www.codeproject.com/KB/edit/RichTextBoxLinks.aspx ](http://www.codeproject.com/KB/edit/RichTextBoxLinks.aspx "रिच टेक्स्ट बॉक्स लिंक ") शुभकामनाएँ! –

उत्तर

9

एक RichTextBox, यूआरएल पता लगाने मुझे नहीं लगता कि एक नियमित रूप से पाठ बॉक्स उन्हें पता लगा सकते हैं कर सकते हैं। हालांकि आप हमेशा अपने इनपुट के लिए सिंगल लाइन रिचटेक्स्टबॉक्स का उपयोग कर सकते हैं।

http://msdn.microsoft.com/en-us/library/f591a55w.aspx

+4

4 साल बाद, और आपका उत्तर अभी भी लोगों की मदद कर रहा है! धन्यवाद। –

+1

खुशी मैं कुछ मदद की हो सकती है :) –

3

श्री जेमी गार्सिया द्वारा प्रदान समाधान के लिए एक महान एक है, आपूर्ति की MSDN लेख के लिंक के द्वारा संदर्भित है। हालांकि, यह समाधान दिया गया था कि इस समाधान को बहुत पहले प्रस्तावित किया गया था, मैं एक अद्यतन एक का प्रस्ताव देना चाहता हूं।

MSDN solution इंटरनेट एक्सप्लोरर लॉन्च करता है और सीधे यूआरएल को प्रोग्राम में पास करता है। मुझे लगता है कि एक बेहतर (और अधिक उपयोगकर्ता केंद्रित) दृष्टिकोण उपयोगकर्ता के डिफ़ॉल्ट वेब ब्राउज़र के भीतर लिंक लॉन्च करना होगा।

हम अभी भी हमारे RichTextBox नियंत्रण के LinkClicked ईवेंट के लिए एक ईवेंट हैंडलर सेट अप करते हैं, लेकिन कुछ बदलावों के साथ। यहाँ पूरा कोड है:

// Event raised from RichTextBox when user clicks on a link: 
private void richTextBox_LinkClicked(object sender, LinkClickedEventArgs e) 
{ 
    LaunchWeblink(e.LinkText); 
} 

// Performs the actual browser launch to follow link: 
private void LaunchWeblink(string url) 
{ 
    if (IsHttpURL(url)) Process.Start(url); 
} 

// Simple check to make sure link is valid, 
// can be modified to check for other protocols: 
private bool IsHttpURL(string url) 
{ 
    return 
     ((!string.IsNullOrWhiteSpace(url)) && 
     (url.ToLower().StartsWith("http"))); 
} 

MSDN article राज्यों के रूप में, RichTextBox नियंत्रण से DetectUrls संपत्ति डिफ़ॉल्ट रूप से सक्षम है, इसलिए किसी भी मान्य HTTP/HTTPS यूआरएल स्वचालित रूप से रेखांकित हाइपरलिंक के रूप में दिखाई देगा।

+1

_ "RichTextBox नियंत्रण की DetectUrls प्रॉपर्टी डिफ़ॉल्ट रूप से सक्षम है, इसलिए कोई मान्य http/https urls स्वचालित रूप से रेखांकित हाइपरलिंक्स के रूप में दिखाई देगा।" _ लिंकक्लेक्ड ईवेंट केवल रेखांकित हाइपरलिंक्स पर ही होंगे (मान्य नियंत्रण द्वारा), तो हमें मान्य करने की आवश्यकता क्यों है? – miguelmpn

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

  • कोई संबंधित समस्या नहीं^_^