怎么实现单击除了该控件外其他控件,使该控件隐藏起来????

twohorses 2014-03-05 03:37:15
一个窗体上有各种控件,现在想实现这样的功能:点击一个按钮,使隐藏的ListBox控件显示出来,然后点击该窗体内除这个Listbox控件外的其他任何控件后,使Listbox控件隐藏起来,就像Combobox控件的下拉框一样,怎么实现??(除了去实现其他各个控件的Click事件)
...全文
439 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wepwep 2014-03-07
  • 打赏
  • 举报
回复
用鼠标钩子啊,得到鼠标点击的绝对坐标,然后跟listbox的绝对坐标比较,如果是在范围外就隐藏。
  • 打赏
  • 举报
回复
首先,你所谓的任何一个“其它控件”都要捕获单击事件。 其次,在上述事件处理方法中,需要判断是否有需要“隐藏控件”的任务。这通常需要你为“隐藏任务”设计一个对象结构(并且可以将“隐藏、显示”做为通用的接口方法,以备将来扩展到个种子类对象中),或者至少(如果数据结构简单得实在没有什么内容的话)使用一个List<Control>之类的。在实践处理方法中,遍历这个集合,将需要隐藏的控件隐藏。
twohorses 2014-03-06
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
首先,你所谓的任何一个“其它控件”都要捕获单击事件。 其次,在上述事件处理方法中,需要判断是否有需要“隐藏控件”的任务。这通常需要你为“隐藏任务”设计一个对象结构(并且可以将“隐藏、显示”做为通用的接口方法,以备将来扩展到个种子类对象中),或者至少(如果数据结构简单得实在没有什么内容的话)使用一个List<Control>之类的。在实践处理方法中,遍历这个集合,将需要隐藏的控件隐藏。
看来只能捕获其他控件的单击事件了,Combobox控件下拉框显示后,你点其他地方,他都会收起,不知道是什么原理?
wind_cloud2011 2014-03-05
  • 打赏
  • 举报
回复
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ListBox1.Visible = False End Sub
wind_cloud2011 2014-03-05
  • 打赏
  • 举报
回复
1楼的方法

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       ListBox1.Visible = False
    End Sub

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ListBox1.Visible = True
        ListBox1.Focus()
    End Sub

  Private Sub ListBox1_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.Leave
        ListBox1.Visible = False
    End Sub


twohorses 2014-03-05
  • 打赏
  • 举报
回复
引用 楼主 twohorses 的回复:
一个窗体上有各种控件,现在想实现这样的功能:点击一个按钮,使隐藏的ListBox控件显示出来,然后点击该窗体内除这个Listbox控件外的其他任何控件后,使Listbox控件隐藏起来,就像Combobox控件的下拉框一样,怎么实现??(除了去实现其他各个控件的Click事件)
这样在点击不获得焦点的控件时就不行了,比如我点击窗体或者Label控件等
feiyun0112 2014-03-05
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{
listBox1.Visible = true;
listBox1.Focus();
}

private void listBox1_Leave(object sender, EventArgs e)
{
listBox1.Visible = false;
}

*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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