2012-11-12 20 views
8

रोकथाम के मामले में एंटर कुंजी दबाए जाने के बाद मुझे टेक्स्टवियर को नई लाइनें बनाने की आवश्यकता है। न्यूलाइन फ्लैग सक्षम है।एंटर दबाए जाने के बाद StyledText में नई पंक्ति को कैसे रोकें

मैं कोड के इस टुकड़े है:

TextViewer myTextViewer = new TextViewer (myGroup, SWT.V_SCROLL 
              | SWT.FULL_SELECTION 
              | SWT.BORDER | SWT.WRAP); 
myTextViewer.setDocument(new Document(myText)); 
StyledText myStyledText = myTextViewer.getTextWidget(); 

myStyledText.addTraverseListener(new TraverseListener() { 
    @Override 
    public void keyTraversed(TraverseEvent e) { 
     if (e.detail == SWT.TRAVERSE_RETURN) { 
      if (preventNewLines) 
       e.doit = false; 
     } 
    } 
}); 

लेकिन यह नई लाइनों वैसे भी बना देता है ... क्या मैं गलत कर रहा हूँ? क्या कोई मुझे सही कोड पोस्ट कर सकता है इसे कैसे रोकें?

संपादित करें: ठीक है, मैं भाग्य से जवाब मिल गया है, मुझे आशा है कि यह किसी और, हो सकता है ...

myStyledText.addVerifyKeyListener(new VerifyKeyListener() { 

    @Override 
    public void verifyKey(VerifyEvent e) { 
     if (preventNewLines && 
      (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR)) { 
      e.doit = false; 
     } 
    } 
}); 
+1

आपको अपने प्रश्न का उत्तर देना चाहिए, फिर इसे उत्तर के रूप में जांचें क्योंकि यह अभी भी एक खुला प्रश्न है। – GenericJam

उत्तर

0

यह यहाँ उत्तर दिया गया है https://stackoverflow.com/a/7589098/18445

@Override 
public boolean isNavigationEvent(ColumnViewer viewer, Event event) { 
    return event.keyCode == SWT.CR || event.keyCode == SWT.KEYPAD_CR; 
} 
में मदद करता है

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

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