我在FORM界面上有两个richTextBox控件,并且使用了同一个弹出菜单。这里我想判断鼠标时在哪个控件里按下右键的,请问怎么判断?
我用这样的语句的!Rectangle rect1=this.richTextBox1.ClientRectangle;
Rectangle rect2=this.richTextBox2.ClientRectangle;
Point pt=System.Windows.Form.Control.MousePosition;
if(rect1.Contains(pt))
{
   Popmenu();
}
if(rect2.Contains(pt))
{
   Popmenu();
}可是这样怎么也执行不到if里的语句体!高手请给个好的方案

解决方案 »

  1.   

    事件参数里本身就是触发控件名:
         if( ((RichTextBox)send).Name = "....)..
      

  2.   

    应该在RichTextBox控件的MouseUp事件中,根据鼠标事件参数来检测其是否在该RichTextBox中,然后再弹出右键菜单。
      

  3.   

    对不起,我可能没有说清楚!我得意思是:有两个RichTextBox它们关联到同一个右键菜单,那么在右键菜单的事件(如copy,cut)的函数里我怎么判断要拷贝或剪切的数据是来自哪个RichTextBox的呢?按照csShooter的意思,在这里是不对了,Menu的事件里的sender包含的不是RichTextBox对象。所以用你的那个转换出现了编译错误。应该是我没说清楚意思,让你误解了,抱歉!这是我处理右键里的Copy事件函数:可是我不知道当前数据时来自哪个RichTextBox的?
    private void cmenu_Copy_Click(object sender, System.EventArgs e)
    {
    if(((RichTextBox)sender).Name==this.tbp1_rtbCode.Name)
    {
    MessageBox.Show("this is richtextbox1's Undo Command!");
    }
    if(((RichTextBox)sender).Name==this.tbp1_rtbCodeDesc.Name)
    {
    MessageBox.Show("this is richtextbox2's Undo Command!");
    }
    }if里的条件肯定是不对的,但我应该用什么条件就能分开它的操作数据是来自谁呢??