一个关于winform的比较难的问题

Homers 2007-11-12 06:23:44
在窗体上放置一个listbox,在窗体上点击,可使listbox不显示(窗体上有这样的事件),但是如果窗体上有panel这样的控件,点击这个panel,listbox就不会消失,有什么办法可以点击窗体上任意位置(不包括listbox的范围),使listbox消失(不知道form上有多少个panel或其它的容器控件)
tks.
...全文
148 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Homers 2007-11-13
  • 打赏
  • 举报
回复
还有没有别的方法啊?
zhiang75 2007-11-12
  • 打赏
  • 举报
回复


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;



namespace WindowsApplication7
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Click += new EventHandler(Form1_Click);

foreach (Control item in this.Controls)
{
if (item != comboBox1)
{
SetClick(item);
}
}

}

void Form1_Click(object sender, EventArgs e)
{
comboBox1.Visible = !comboBox1.Visible;
}

void SetClick(Control item)
{
item.Click += new EventHandler(Form1_Click);
foreach (Control temp in item.Controls)
{
SetClick(item);
}
}




}
}
zgke 2007-11-12
  • 打赏
  • 举报
回复
把panel的鼠标事件和FROM的事件设置成一个
IThurricane 2007-11-12
  • 打赏
  • 举报
回复
或者看看这篇文章,用了消息过滤器
http://www.cnblogs.com/michaelhuwei/archive/2007/06/15/784266.html
IThurricane 2007-11-12
  • 打赏
  • 举报
回复
判断鼠标位置
PointToClient(MousePosition));
或者判断哪个控件取得焦点
If (ButtonXXX.Focus)
应该可以实现吧?
snksxsyy 2007-11-12
  • 打赏
  • 举报
回复
帮顶

110,533

社区成员

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

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

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