判断鼠标是否在某一区域的问题?

yulinlover 2006-08-29 10:11:37
我在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里的语句体!高手请给个好的方案
...全文
223 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yulinlover 2006-08-30
  • 打赏
  • 举报
回复
对不起,我可能没有说清楚!我得意思是:有两个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里的条件肯定是不对的,但我应该用什么条件就能分开它的操作数据是来自谁呢??
zhgroup 2006-08-30
  • 打赏
  • 举报
回复
应该在RichTextBox控件的MouseUp事件中,根据鼠标事件参数来检测其是否在该RichTextBox中,然后再弹出右键菜单。
csShooter 2006-08-30
  • 打赏
  • 举报
回复
事件参数里本身就是触发控件名:


if( ((RichTextBox)send).Name = "....)..

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧