当用户将光标悬停在特定的ToolStripButton上时,我希望更改用户的光标,但不希望更改ToolStrip上其他项的光标。如何设置按钮的光标?
发布于 2009-02-09 15:13:13
因为ToolStripItem不是从控件继承的,所以它没有游标属性。
您可以将窗体光标设置在MouseEnter事件上,然后将窗体光标恢复到MouseLeave事件上,VB示例如下:
Dim savedCursor As Windows.Forms.Cursor
Private Sub ToolStripButton1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles ToolStripButton1.MouseEnter
If savedCursor Is Nothing Then
savedCursor = Me.Cursor
Me.Cursor = Cursors.UpArrow
End If
End Sub
Private Sub ToolStripButton1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles ToolStripButton1.MouseLeave
Me.Cursor = savedCursor
savedCursor = Nothing
End Sub更新
在C#中也有同样的答案:
private Cursor savedCursor;
private void ToolStripButton1_MouseEnter(object sender, EventArgs e) {
if (savedCursor == null) {
savedCursor = this.Cursor;
this.Cursor = Cursors.UpArrow;
}
}
private void ToolStripButton1_MouseLeave(object sender, EventArgs e) {
this.Cursor = savedCursor;
savedCursor = null;
}发布于 2009-02-09 15:15:23
下拉到Win32并处理WM_SETCURSOR。您可以添加自己的自定义逻辑,以根据按钮的命中测试更改光标。Check this article by Raymond Chen,以更好地了解如何设置游标。
发布于 2009-02-09 15:12:31
必须设置Toolstrip.Cursor属性才能更改光标。是的,你是对的,它会改变所有工具条按钮的鼠标光标。
为了解决此问题,请为工具条上的每个按钮创建一个OnMouseEnter事件,然后将整个工具条的光标设置为要用于该特定按钮的光标。
https://stackoverflow.com/questions/528489
复制相似问题