[英]Mouse events on picturebox?
我有一个带有已制作的自定义图像的“开始”按钮。 我没有弄错C#.net的这一部分,但是我对VB.NET有所了解。
我见过人们有一些东西,比如public void picturebox_MouseDown()
东西,但是似乎都没有用。 我正在尝试给定鼠标事件时更改图像。
MouseDown
会将图像更改为StartButtonDown
MouseUp
会将图像更改为StartButtonUp
MouseEnter
会将图像更改为StartButtonHover
MouseLeave
会将图像更改为StartButtonUp
有什么我应该做的特别的事情,我已经用Google搜索了大约一个小时,但仍然找不到任何可以帮助我的东西。
这是我写的,与您的要求非常相似。
using System;
using System.Drawing;
using System.Windows.Forms;
public partial class ImageButton : PictureBox
{
private Image _upImage, _downImage, _hoverImage;
[System.ComponentModel.Browsable(true),
System.ComponentModel.Category("Images")]
public Image UpImage
{
get { return _upImage; }
set
{
if (value != null)
{
_upImage = value;
this.Image = _upImage;
}
}
}
[System.ComponentModel.Browsable(true),
System.ComponentModel.Category("Images")]
public Image DownImage
{
get { return _downImage; }
set
{
if (value != null)
{
_downImage = value;
}
}
}
[System.ComponentModel.Browsable(true),
System.ComponentModel.Category("Images")]
public Image HoverImage
{
get { return _hoverImage; }
set
{
if (value != null)
{
_hoverImage = value;
}
}
}
public ImageButton()
{
InitializeComponent();
}
protected override void OnMouseDown(MouseEventArgs e)
{
if (DownImage != null)
this.Image = DownImage;
base.OnMouseDown(e);
}
protected override void OnMouseUp(MouseEventArgs e)
{
if (UpImage != null)
this.Image = UpImage;
base.OnMouseUp(e);
}
protected override void OnMouseEnter(EventArgs e)
{
if (HoverImage != null)
this.Image = HoverImage;
base.OnMouseEnter(e);
}
protected override void OnMouseLeave(EventArgs e)
{
if (UpImage != null)
this.Image = UpImage;
base.OnMouseLeave(e);
}
}
我所做的工作是从标准PictureBox
继承而来的,以制作一个ImageButton
。 我有三个属性的Image
与没有鼠标动作(UpImage)时,显示Image
时MouseDown事件被触发(DownImage)来显示,并且Image
当鼠标悬停在控制(HoverImage)来显示。
请注意,您应该添加对MouseUp和MouseLeave事件的检查。 如果单击图像并将鼠标拖离控件,则控件将再次从UpImage转到DownImage,再到UpImage,因为即使我的鼠标仍处于按下状态,我也已离开控件(MouseLeave)。 您可能希望当鼠标离开控件时,DownImage保持显示。 此外,发生MouseUp事件时,应检查鼠标是否仍悬停在控件上。 如果是这样,您将要显示HoverImage而不是UpImage。
您还可以检查使用了哪个鼠标按钮。 也许您只希望通过单击鼠标左键而不是右键或中间键来更改图像。
但这应该可以帮助您入门。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.