如何判断在用户控件外部点击鼠标,而让用户控件本身知道并触发一些操作

csharp_start 2007-11-27 03:34:58
在做一个复合用户控件的时候,用了一个textbox和一个按钮.

private canshow = true;

在这个按钮的click事件中有如下代码:
if(canshow)
{
form1.show();
}
else
{
form1.hide();
}
canshow = !canshow;
-----------------------------------
在textbox的mousedown事件中设置了canshow = true;来保证每次都可以将form1.show执行.
这样在每次点按钮的时候第1,3,5...次会form1.show(),第2,4,6...次会Hide(),
在点textbox后(textbox获得光标),点按钮也没有问题.
但是,只有在将鼠标点到复合控件外部,例如是FORM上,或其他不能获得光标的控件上,再点该按钮的时候,一定要点2次才可以执行FORM1.SHOW();
所以,想知道如何可以在将鼠标点到复合控件外部的时候,设置canshow = true;而这种设置要在附和控件内部实现.
谢谢!
...全文
188 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
csharp_start 2007-12-03
  • 打赏
  • 举报
回复
up!
csharp_start 2007-11-29
  • 打赏
  • 举报
回复
获得焦点就执行form.show,肯定是不行的啊.
因为textbox根本就没有失去焦点!所以不会触发这个事件.
田想兵 2007-11-28
  • 打赏
  • 举报
回复
好像第一次点击只是把焦点移过去了,所以没回发吧!
csharp_start 2007-11-28
  • 打赏
  • 举报
回复
up!
renzhe02 2007-11-28
  • 打赏
  • 举报
回复
再点该按钮的时候,一定要点2次才可以执行FORM1.SHOW();
当获得焦点时,执行FORM1.SHOW();
csharp_start 2007-11-27
  • 打赏
  • 举报
回复
不吝赐教!
Tassadar1979 2007-11-27
  • 打赏
  • 举报
回复

感觉是你的程序结构有问题.


csharp_start 2007-11-27
  • 打赏
  • 举报
回复
up
csharp_start 2007-11-27
  • 打赏
  • 举报
回复
自己顶起来!

110,538

社区成员

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

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

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