2010-09-09 11 views
7

मेरे पास एक एप्लिकेशन पर एक रिचटेक्स्टबॉक्स नियंत्रण है और यहां मेरी समस्या है: जब एप्लिकेशन चलता है, तो यदि मैं माउस के साथ किसी शब्द के अंदर कुछ अक्षर चुनना शुरू करता हूं और इसके बाहर चयन करना जारी रखता हूं, तो चयन में स्वचालित रूप से शामिल होता है पूरा शब्द जिसमें मैंने चयन शुरू किया और कोई अन्य शब्द जिसमें से मैं सिर्फ एक हिस्सा चुनना चाहता हूं, एमएस शब्द-ईश, अगर मुझे गलत नहीं लगता है।सी # रिचटेक्स्टबॉक्स चयन समस्या

जैसे:

  • पाठ है: "बस एक और foobar"
  • क्या मैं चयन करना चाहते है: "बस Ano [वहाँ foo] बार"
  • ([] के बीच बात)
  • वास्तव में क्या चुना जाता है: "बस [एक और foobar]"

समस्या सिर्फ माउस चयन के साथ है, अगर मैं कीबोर्ड के साथ पाठ का चयन करता हूं तो यह ठीक काम करता है। साथ ही, नियंत्रण की ऑटो शब्द चुनिंदा संपत्ति बंद है। कोई विचार यह क्यों है?

+0

एचआरएम। क्या यह तय किया गया था? http://connect.microsoft.com/VisualStudio/feedback/details/115441/richtextboxs-autowordselection-property-does-not-work- सही ढंग से –

+0

हम्म ... मुझे लगता है कि यह है। कामकाज का कोई विचार है? – cantrem

उत्तर

13

ऑटोवॉर्ड चयन संपत्ति कार्यान्वयन में एक मूर्खतापूर्ण बग है। कामकाज समान रूप से मूर्ख है। अपनी परियोजना में एक नई कक्षा जोड़ें और नीचे दिखाए गए कोड पेस्ट करें। संकलित करें। मौजूदा आरटीबी की जगह, टूलबॉक्स के शीर्ष से नया नियंत्रण अपने फॉर्म पर छोड़ दें।

using System; 
using System.Windows.Forms; 

public class FixedRichTextBox : RichTextBox { 
    protected override void OnHandleCreated(EventArgs e) { 
     base.OnHandleCreated(e); 
     if (!base.AutoWordSelection) { 
      base.AutoWordSelection = true; 
      base.AutoWordSelection = false; 
     } 
    } 
} 

मैं इस MSDN Library page बग के विवरण के साथ के तल पर एक टिप्पणी के छोड़ दिया है।

+0

वह पूरी तरह से लंगड़ा था ... लेकिन धन्यवाद, मैं इसे एप की कोशिश करूंगा। मैं अंत में कुछ .net कीड़े का अनुभव करने के लिए मिलता है! – cantrem

+0

... और वास्तव में, यह काम करता है। एक बार फिर धन्यवाद! – cantrem

+0

मेरे पास RichTextBox बग से संबंधित किसी प्रश्न के लिए बाउंटी है: http://stackoverflow.com/questions/19256004/richtextbox-selection-bug-when-pressing-control-key क्या आपको कोई विचार है? –

2

हो सकता है कि चीजें बदल गई के बाद से इस सवाल का जवाब था, लेकिन मैं एक और भी सरल समाधान है:

बस कोड को richTextBox1.AutoWordSelection = false; जोड़ें।

पागल लगता है, लेकिन यह गुणों में false पर सेट-बॉक्स काम नहीं करता है। आपको कोड में ऐसा करना है, भले ही संपत्ति पहले से ही गलत है। फिर यह काम करता है!

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