2009-01-12 11 views
41

जब मैं अपने RichTextBox में www.stackoverflow.com जोड़ता हूं और प्रोग्राम चलाता हूं तो यह नीले रंग में दिखाई देता है और एक हाइपरलिंक के रूप में तब तक जब मैं इसे क्लिक करता हूं तो कुछ भी नहीं होता है। मैं इसे कैसे ठीक करूं?मैं RichTextBox में हाइपरलिंक कैसे काम कर सकता हूं?

+0

http://stackoverflow.com/questions/762271/clicking-hyperlinks-in-a-richtextbox-without-holding-down-ctrl-wpf इस मैंने पाया के लिए सबसे अच्छा धागा (अभी तक) –

उत्तर

2

yourTextBox.DetectUrls सच है? बेहतर उत्तर प्रदान करने के लिए हमें कुछ और जानकारी की आवश्यकता हो सकती है।

9

RichTextBox क्लास आपको हाइपरलिंक पर क्लिक करते समय अपने व्यवहार को अनुकूलित करने की अनुमति देता है। RichTextBox.LinkClicked घटना

Process p = new Process(); 

private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e) 
{ 
    p = Process.Start("IExplore.exe", e.LinkText); 
} 
2

आप यह सुनिश्चित करें कि DetectUrlstrue के लिए सेट है चाहिए के लिए एक ईवेंट हैंडलर जोड़ें। यदि यह स्वयं पर काम नहीं करता है, तो आपको LinkClicked ईवेंट के लिए एक हैंडलर जोड़ने की आवश्यकता हो सकती है।

+0

है RichTextBox – user2323308

+0

में DetectUrl प्रॉपर्टी खोजने में असमर्थ DetectUrl प्रॉपर्टी केवल RichTextBox के WinForms संस्करण में है। डब्ल्यूपीएफ संस्करण में यह संपत्ति नहीं है। इस लिंक को आजमाएं: http://stackoverflow.com/questions/762271/clicking-hyperlinks-in-a-richtextbox-without-holding-down-ctrl-wpf – Drew

118
  1. सुनिश्चित करें कि टेक्स्ट प्रॉपर्टी में एक वैध यूआरएल शामिल है। जैसे http://www.stackoverflow.com/

  2. सच

  3. को DetectUrls गुण सेट एक ईवेंट हैंडलर लिखें के लिए घटना LinkClicked।

व्यक्तिगत रूप से, मैं Microsoft सलाह के रूप में Process.Start कॉल करने के लिए एक पैरामीटर के रूप में पारित नहीं होगा "iexplore.exe" के रूप में इस धारणाओं कि यह स्थापित किया गया है, और उपयोगकर्ता की पसंदीदा ब्राउज़र है । यदि आप बस शुरू करने के लिए यूआरएल पास करते हैं (नीचे के अनुसार) तो विंडोज सही काम करेगा और उपयुक्त यूआरएल के साथ उपयोगकर्ता के पसंदीदा ब्राउजर को फायर करेगा।

private void mRichTextBox_LinkClicked (object sender, LinkClickedEventArgs e) { 
    System.Diagnostics.Process.Start(e.LinkText); 
} 
+0

क्या यह यूएनसी के लिए संभव है, ई: \ मेरे दस्तावेज़ जैसे पथ \ लॉग \ log1.log? – Kiquenet

+1

@Kiquenet - सुनिश्चित नहीं है, लेकिन फॉर्म फ़ाइल की प्रविष्टि का उपयोग करने का प्रयास करें: //// e: /My%20Documents/Logs/log1.log –

+6

यह एक गंभीर सुरक्षा जोखिम हो सकता है। एक बेहतर तरीका यह है: 'System.Diagnostics.Process.Start ("explorer.exe", e.LinkText); ' – Christian

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