2009-11-14 49 views
0

2個問題:如何爲所選文本設置上下文菜單? &

  1. 谷歌瀏覽器,如果你選擇一個單詞(比如problem),然後右鍵單擊該所選文本,在上下文菜單中顯示了兩個項目1.複製2.Search谷歌problem 3 。檢查元素。上下文菜單與整個窗口的上下文菜單不同。我怎樣才能爲選定的文本有這個單獨的上下文菜單。

    我試圖完成的確切任務是:我有一個文本框(以winforms形式)。現在當用戶rt點擊時,上下文菜單隻顯示paste。如果文本框填充有一些文本,用戶選擇一些文本,然後右鍵單擊選定的文本,它應該顯示上下文菜單 項目:複製,剪切,粘貼,全選。怎麼樣 ?。

  2. 對於複製文本的用戶有3個選項:

    1. 複製(在上下文菜單)
    2. 編輯菜單
    3. 按Ctrl + C

所有這些做同樣的事情,將選定的數據複製到剪貼板。我想覆蓋使用這3種方法複製所選數據的功能,以將所需數據複製到剪貼板。怎麼樣?

+0

你想要做的事情不是很清楚......你可以試着更好地解釋它嗎? – 2009-11-14 01:28:43

回答

1

您可以將自定義ContextMenuStrip分配給TextBox的ContextMenuStrip屬性。因此,我會實例化我自己的,使用複製/粘貼和其他項目來填充項目。然後,您可以處理ContextMenuStrip的Opening事件,檢查TextBox中是否存在選定的文本,並在顯示菜單項之前修改菜單項(即更改「Search google」項的Visible屬性)。

 
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) 
{ 
    var item = searchGoogleMenuItem; 
    if (item.Visible = !string.IsNullOrEmpty(textBox1.SelectedText)) 
     item.Text = string.Format("Search Google '{0}'", textBox1.SelectedText); 
} 
相關問題