2013-03-16 119 views
0

程序员,硕士。在RichTextBox中选择单词并右键单击,然后在ContextMenu C中显示#

请帮助我...让我通过你的榜样学习。

描述: 当单词被选中并右键单击时,单词显示在弹出框中。例如, 输入:“巴塞罗那是我最喜欢的足球俱乐部”。

我选择的词“足球”,然后右键点击并字显示在弹出菜单后,“这是足球”。

当我在弹出式菜单中单击这些单词时,它将用弹出式菜单中的单词代替INPUT 中的单词,如此示例。

OUTPUT:巴萨是我最喜欢的这就是足球俱乐部“

请...帮助我

我真是瞎了眼文本菜单的..

这里是代码。:

ContextMenu contextMenu = new ContextMenu(); 
private EventHandler menuHandler; 

public Form1() 
{ 
    InitializeComponent(); 
    menuHandler = new System.EventHandler(this.Menu_Click);// what's menu_click? 
} 

private void Menu_Click(object sender, EventArgs e) 
{ 
    richTextBox1.SelectionFont = new Font("Times New Roman", 12); 
    richTextBox1.SelectionColor = Color.Black; 

    richTextBox1.SelectedText = ((MenuItem)sender).Text; 
} 

private void richTextBox1_MouseDown(object sender, MouseEventArgs e) 
{ 
    try 
    { 
     if (e.Button == MouseButtons.Right) 
     { 
     Point point = new Point(e.X, e.Y); 
     int index = richTextBox1.GetCharIndexFromPosition(point); 
     textBox1.Text = Convert.ToString(index); 

     int length = 1; 

     if (!Char.IsWhiteSpace(richTextBox1.Text[index])) 
     { 
      while (index > 0 && !Char.IsWhiteSpace(richTextBox1.Text[index - 1])) 
      { index--; length++; } 

       while (index + length < richTextBox1.Text.Length && 
        !Char.IsWhiteSpace(richTextBox1.Text[index + length]) && 
        (!Char.IsPunctuation(richTextBox1.Text[index + length]) || 
        richTextBox1.Text[index + length] == Char.Parse("'")) 
      ) length++; 

       richTextBox1.SelectionStart = index; 
       richTextBox1.SelectionLength = length; 
       contextMenu.MenuItems.Clear(); // error here 
       contextMenu.MenuItems.Add("This is "+richTextBox1.SelectedText, menuHandler); //error here 
       //What's next Sir? 
      } 
     } 
    } 
    } 

//未来......,我真的不知道。

它不起作用。请帮助:) :) :)

+0

你得到了什么错误,你在哪里声明contextMenu – Civa 2013-03-16 04:33:21

+0

最新错误? – 2013-03-16 04:38:12

+0

先生,contextMenu1不显示。 “我contextMenu1.Show(richTextBox1,点);”在contextMenu.MenuItems.Add(“.....”)之后。 有什么建议吗? – 2013-03-16 04:43:13

回答

0

来显示文本菜单添加

richTextBox1.ContextMenu = contextMenu ; 

到RHE initalization或在Form1中()

0

你刚刚用波纹管的事情,以显示菜单

contextMenu1.Show(richTextBox1, point); 
相关问题