2011-08-30 14 views
7

मैं रिचटेक्स्टबॉक्स सी # एप्लिकेशन में कॉपी/पेस्ट फ़ंक्शंस को ओवरराइड कैसे कर सकता हूं। ctrl-c/ctrl-v सहित और प्रतिलिपि प्रतिलिपि/पेस्ट पर क्लिक करें।richtextbox में कॉपी और पेस्ट को ओवरराइड करने के लिए कैसे करें

यह WPF richtextBox है।

+0

विंडोज़ फॉर्म या डब्ल्यूपीएफ? विण्डोज़ फॉर्म्स के लिए –

+0

: http://stackoverflow.com/questions/5618162/detecting-if-paste-event-occurred-inside-a-rich-text-box WPF के लिए यहाँ देखें: http: // stackoverflow .com/प्रश्न/3061475/पेस्ट-इवेंट-इन-ए-डब्ल्यूपीएफ-टेक्स्टबॉक्स –

+0

@ डेविड, डब्ल्यूपीएफ लिंक एक हैंडलर जोड़ता है, लेकिन यह इसे ओवरराइड नहीं करता है। – raym0nd

उत्तर

17

आदेश कार्यों ओवरराइड करने के लिए:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    if (keyData == (Keys.Control | Keys.C)) 
    { 
    //your implementation 
    return true; 
    } 
    else if (keyData == (Keys.Control | Keys.V)) 
    { 
    //your implementation 
    return true; 
    } 
    else 
    { 
    return base.ProcessCmdKey(ref msg, keyData); 
    } 
} 

और राइट क्लिक एक Winforms RichTextBox

--EDIT--

बहुत देर हो चुकी है कि यह एक WPF सवाल था एहसास में समर्थित नहीं है। का उपयोग करते समय
//doc.Editor RichTextBox

DataObject.AddPastingHandler(doc.Editor, new DataObjectPastingEventHandler(OnPaste)); 
DataObject.AddCopyingHandler(doc.Editor, new DataObjectCopyingEventHandler(OnCopy)); 



    private void OnPaste(object sender, DataObjectPastingEventArgs e) 
    { 

    } 
    private void OnCopy(object sender, DataObjectCopyingEventArgs e) 
    { 

    } 
+0

क्या आप जानते हैं कि डब्ल्यूपीएफ में ऐसा कैसे करें? – raym0nd

+0

@ raym0nd: मैंने अपना कोड अपडेट किया है। –

+0

@Ediwn आपके पास WPF सामान है, एक हैंडलर जोड़ता है लेकिन मुख्य पुलिस/पेस्ट वाले को ओवरराइड नहीं करता है, उन्हें अभी भी – raym0nd

1

मैं इस प्रयोग किया है: WPF में ऐसा करने के लिए आप एक कस्टम कॉपी और पेस्ट हैंडलर भी संलग्न करना होगा कॉपी और पेस्ट हैंडलर? आप OnCopy के अपने कस्टम प्रवर्तन और आप

e.Handled = true; 
e.CancelCommand(); 

OnCopy से इसे संभाल भी जब कट कर कहा जाता है जब - मैं पता लगाएँ कि क्या विधि प्रतिलिपि प्रदर्शन करने के लिए बुलाया गया था या कट लगाने के लिए जिस तरह से नहीं मिल रहा।

4

क्या कट के बारे में है:

DataObject.AddPastingHandler(myRichTextBox, MyPasteCommand); 
DataObject.AddCopyingHandler(myRichTextBox, MyCopyCommand); 

private void MyPasteCommand(object sender, DataObjectEventArgs e) 
{ 
    //do stuff 
} 

private void MyCopyCommand(object sender, DataObjectEventArgs e) 
{ 
    //do stuff 
} 
+1

मुझे भी, मुझे नहीं पता कि यह कॉपी या कट है या नहीं –

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