首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改ToolStripButton的光标?

如何更改ToolStripButton的光标?
EN

Stack Overflow用户
提问于 2009-02-09 15:00:20
回答 4查看 4.4K关注 0票数 3

当用户将光标悬停在特定的ToolStripButton上时,我希望更改用户的光标,但不希望更改ToolStrip上其他项的光标。如何设置按钮的光标?

EN

回答 4

Stack Overflow用户

发布于 2009-02-09 15:13:13

因为ToolStripItem不是从控件继承的,所以它没有游标属性。

您可以将窗体光标设置在MouseEnter事件上,然后将窗体光标恢复到MouseLeave事件上,VB示例如下:

代码语言:javascript
复制
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#中也有同样的答案:

代码语言:javascript
复制
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;
}
票数 7
EN

Stack Overflow用户

发布于 2009-02-09 15:15:23

下拉到Win32并处理WM_SETCURSOR。您可以添加自己的自定义逻辑,以根据按钮的命中测试更改光标。Check this article by Raymond Chen,以更好地了解如何设置游标。

票数 1
EN

Stack Overflow用户

发布于 2009-02-09 15:12:31

必须设置Toolstrip.Cursor属性才能更改光标。是的,你是对的,它会改变所有工具条按钮的鼠标光标。

为了解决此问题,请为工具条上的每个按钮创建一个OnMouseEnter事件,然后将整个工具条的光标设置为要用于该特定按钮的光标。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/528489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档