定义了一个控件,鼠标进入时,给这个控件所在的父控件(Panel)添加几个小控件,小控件位置在该控件的上面,鼠标离开时,让小控件消失.鼠标在小控件上时,鼠标变成手形,可是,这样做,程序应该没问题,就是小控件不响应事件,好像从没有捕捉到鼠标.
//鼠标进入,添加小控件
protected override void OnMouseEnter(EventArgs e)
{
base.OnMouseEnter(e);
if (diyicijin == true)
{
shang.Location = new Point(this.Left-7, this.Top + 4);
xia.Location = new Point(this.Left -7, this.Top + 19);
zhongjian.Location = new Point(this.Left + 21, this.Top + 11);
shang.Size = new Size(200, 23);
zhongjian.Size = new Size(100, 23);
xia.Size = new Size(200, 23);
this.Parent.Controls.Add(shang);
this.Parent.Controls.Add(xia);
this.Parent.Controls.Add(zhongjian);
shang.BringToFront();
zhongjian.BringToFront();
xia.BringToFront(); diyicijin = false;
}
if(yidong.Visible!=true)
{
shang.Visible = true;
xia.Visible = true;
zhongjian.Visible = true;
shang.BringToFront();
zhongjian.BringToFront();
xia.BringToFront();
}
}
//鼠标离开小控件不可见
protected override void OnMouseLeave(EventArgs e)
{
base.OnMouseLeave(e);
shang.Visible = false;
xia.Visible = false;
zhongjian.Visible = false;
}
//进入小控件时,小控件的光标变成手形
private void shang_MouseEnter(object sender, EventArgs e)
{
MessageBox.Show("a");
this.shang.Cursor = Cursors.Hand;
}
不知道为什么,请帮忙解决,谢谢
//鼠标进入,添加小控件
protected override void OnMouseEnter(EventArgs e)
{
base.OnMouseEnter(e);
if (diyicijin == true)
{
shang.Location = new Point(this.Left-7, this.Top + 4);
xia.Location = new Point(this.Left -7, this.Top + 19);
zhongjian.Location = new Point(this.Left + 21, this.Top + 11);
shang.Size = new Size(200, 23);
zhongjian.Size = new Size(100, 23);
xia.Size = new Size(200, 23);
this.Parent.Controls.Add(shang);
this.Parent.Controls.Add(xia);
this.Parent.Controls.Add(zhongjian);
shang.BringToFront();
zhongjian.BringToFront();
xia.BringToFront(); diyicijin = false;
}
if(yidong.Visible!=true)
{
shang.Visible = true;
xia.Visible = true;
zhongjian.Visible = true;
shang.BringToFront();
zhongjian.BringToFront();
xia.BringToFront();
}
}
//鼠标离开小控件不可见
protected override void OnMouseLeave(EventArgs e)
{
base.OnMouseLeave(e);
shang.Visible = false;
xia.Visible = false;
zhongjian.Visible = false;
}
//进入小控件时,小控件的光标变成手形
private void shang_MouseEnter(object sender, EventArgs e)
{
MessageBox.Show("a");
this.shang.Cursor = Cursors.Hand;
}
不知道为什么,请帮忙解决,谢谢
解决方案 »
- |ZYCWPF| 在MediaElement加载视频的时候,因为视频比较大会有1-10秒的没反应,如何给他做视频加载进度呢?
- WPF中的 DataContent 详解,有什么作用怎么用呢?
- 关于把数字型变成日期型的语句
- C# 把一个文件夹下所有文件复制到另一个文件夹下
- 光标一定时间不动后,页面自动跳转
- C#中如何屏蔽CheckListBox中部分item
- 我是新手,这道题真的是生死攸关,希望各位同仁多多指教,在下不胜感激
- 为何我用Socket发送的是一窜字符,而接收的却是空值??????????????????????
- 如何获得Text光标?
- 有几个C#问题,还请各位高手帮帮忙
- 生成静态页面并分页的思考
- 关于定时器的问题
在添加控件时加上如下代码。
shang.MouseMove += new System.Windows.Forms.MouseEventHandler(this.msMove);
protected override void OnMouseLeave(EventArgs e)
{
base.OnMouseLeave(e);
shang.Visible = false;
xia.Visible = false;
zhongjian.Visible = false;
}
所以表示上已经不可见...怎么解决啊
为什么非要重载Form的MouseLeave。
---------------
???? 不懂了。