C# 在ToolStripStatusLabel对象上设置光标类型

C# 在ToolStripStatusLabel对象上设置光标类型,c#,winforms,toolstripstatuslabel,C#,Winforms,Toolstripstatuslabel,我在表单底部有一个StatusStrip对象,其中添加了一个ToolStripStatusLabel对象。我想更改鼠标悬停在其上时显示的鼠标光标的类型 如何实现这一点?在表单中添加以下代码。然后在设计器中,将MouseEnter的事件处理程序设置为SetHandCursor,将MouseLeave设置为SetDefaultCursor private void SetHandCursor(object sender, EventArgs e) { Cursor = Cursors.Han

我在表单底部有一个
StatusStrip
对象,其中添加了一个
ToolStripStatusLabel
对象。我想更改鼠标悬停在其上时显示的鼠标光标的类型


如何实现这一点?

在表单中添加以下代码。然后在设计器中,将MouseEnter的事件处理程序设置为SetHandCursor,将MouseLeave设置为SetDefaultCursor

private void SetHandCursor(object sender, EventArgs e)
{
    Cursor = Cursors.Hand;
}

private void SetDefaultCursor(object sender, EventArgs e)
{
    Cursor = Cursors.Default;
}

ToolStripStatusLabel
对象没有
Cursor
属性。要更改显示的光标,必须在运行时设置
StatusStrip.cursor
属性


使用标签的MouseEnter和MouseLeave事件更改StatusStrip.Cursor属性。

作为替代方法,您可以在中托管
标签,并将其添加到
StatusStrip
。这样,您可以设置所有
标签
属性,包括
光标
。它将像其他标准项一样工作

var item = new ToolStripControlHost(new Label {Text= "Some Text", Cursor= Cursors.Hand});
this.statusStrip1.Items.Add(item);

使用其MouseEnter和MouseLeave事件。在事件处理程序中更改StatusStrip的游标属性。仅此而已。当我点击
StatusStrip
并查看属性时,我没有看到任何属性,例如StatusStrip的
光标,而不是标签。它需要代码。啊,好的,明白了!我不知道它只是在设计期间没有暴露在
StatusStrip
属性中。谢谢你,汉斯。另外,你能补充一下吗?你因在评论中回答而不是实际回答而臭名昭著P-您这样做可能是为了不会收到一百万条通知。:)你有你自己回答问题所需要知道的一切。