2016-02-27 214 views
0

是我的嘗試,現在是在richTextBox1鼠標鬆開事件,也對每個動作的事件:如何在RichTextBox控件中進行復制剪切粘貼?

private void richTextBox1_MouseUp(object sender, MouseEventArgs e) 
     { 
      if (e.Button == System.Windows.Forms.MouseButtons.Right) 
      { 
       ContextMenu contextMenu = new System.Windows.Forms.ContextMenu(); 
       MenuItem menuItem = new MenuItem("Cut"); 
       menuItem.Click += new EventHandler(CutAction); 
       contextMenu.MenuItems.Add(menuItem); 
       menuItem = new MenuItem("Copy"); 
       menuItem.Click += new EventHandler(CopyAction); 
       contextMenu.MenuItems.Add(menuItem); 
       menuItem = new MenuItem("Paste"); 
       menuItem.Click += new EventHandler(PasteAction); 
       contextMenu.MenuItems.Add(menuItem); 

       richTextBox1.ContextMenu = contextMenu; 
      } 
     } 

     void CutAction(object sender, EventArgs e) 
     { 
      richTextBox1.Cut(); 
     } 

     void CopyAction(object sender, EventArgs e) 
     { 
      Clipboard.SetData(DataFormats.Rtf, richTextBox1.SelectedRtf); 
      Clipboard.Clear(); 
     } 

     void PasteAction(object sender, EventArgs e) 
     { 
      if (Clipboard.ContainsText(TextDataFormat.Rtf)) 
      { 
       richTextBox1.SelectedRtf 
        = Clipboard.GetData(DataFormats.Rtf).ToString(); 
      } 
     } 

有兩個問題:

  1. 當我標誌着rcihTextbox文本並右鍵點擊沒有任何事情發生,只有當我再次右鍵單擊我看到菜單剪切粘貼。爲什麼它沒有在第一次點擊右鍵時顯示​​菜單?

  2. 第二個問題,當我做複製點擊複製然後我去鉻瀏覽器,並嘗試使粘貼它是空的粘貼是空的,因爲它根本沒有複製它。

我現在再次檢查Cut正在工作。如果我進行復制,它不會複製任何內容,我無法將其粘貼到頂部的Chrome地址欄中。或者,如果我從exmaple複製鉻我搜索的東西:你好世界然後粘貼在richTextBox是空的。

我希望能夠從richTextBox控件內部自行復制/剪切/粘貼,並從其他外部程序(如記事本chrome,即其他richtextbox控件)進行復制/剪切/粘貼。

回答

0

ContextMenu未顯示,因爲您在右鍵單擊後設置它。嘗試將其設置在MouseDown事件上。當你點擊複製時,你在剪貼板中設置了文本,但是你在Clipboard.Clear()之後刪除它,所以我不知道你在寫這行的時候在想什麼,只是刪除它。

+0

將它移動到mousedown事件解決了右鍵單擊問題。刪除清除行解決了複製問題。但是現在我只能在richTextBox1窗口中進行復制和粘貼。但我仍然無法從外部應用程序(如Chrome或記事本)複製/粘貼到/從richTextBox。例如,如果我輸入chrome www.google.com的頂部,然後標記並複製它,我不能將其粘貼到richTextBox1窗口,如果我從richtextbox中標記和複製文本,則無法將其粘貼到頂部鉻。 –

+0

嘗試在剪貼板中設置多種格式:文本,unicode文本,rtf – bob1024

+0

解決了另外兩個問題。使用這裏的答案:http://stackoverflow.com/questions/18966407/enable-copy-cut-past-window-in-a-rich-text-box –

相關問題