我无法找到如何将光标更改为“指针”或悬停图像时调用的任何内容。
我尝试使用MouseOver,但我无法使用它。这是我目前的代码;
private void image_Phone_MouseOver(object sender, EventArgs e)
{
Cursor.Current = Cursors.Hand;
}
但是,光标不会改变。
答案 0 :(得分:9)
答案 1 :(得分:3)
这是一种在实际 Image
时更改光标的方法:
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
pictureBox1.Cursor = ImageArea(pictureBox1).Contains(e.Location) ?
Cursors.Hand : Cursors.Default;
}
Rectangle ImageArea(PictureBox pbox)
{
Size si = pbox.Image.Size;
Size sp = pbox.ClientSize;
float ri = 1f * si.Width / si.Height;
float rp = 1f * sp.Width / sp.Height;
if (rp > ri)
{
int width = si.Width * sp.Height / si.Height;
int left = (sp.Width - width) / 2;
return new Rectangle(left, 0, width, sp.Height);
}
else
{
int height = si.Height * sp.Width / si.Width;
int top = (sp.Height - height) / 2;
return new Rectangle(0, top, sp.Width, height);
}
}
请注意,在更改ImgArea
的{{1}}或Image
或SizeMode
时,您需要重新计算Size
。
答案 2 :(得分:3)
对于任何PowerShell / Windows Forms程序员:
您基本上可以将其用于表单中的每个元素:
$pictureBox1.Add_MouseHover({ $this.Cursor = "Hand" })
答案 3 :(得分:1)
而不是使用Cursor.Current使用image_Phone.Cursor = Cursors.Hand;
答案 4 :(得分:0)
等待鼠标按下事件并设置默认光标
答案 5 :(得分:0)
在WinForms中(由标记做出的假设) - PicutureBox控件上有一个Cursor
属性...(它实际上在Control
上)尝试设置?