blak3r
blak3r

Reputation: 16536

How do you set cursor on a ToolStripItem

I have some context menu items that are not clickable. They just report the status of something. I don't like how the cursor still appears like they're clickable though.

Anyway to change this?

There isn't a Cursor Field like one would expect.

Upvotes: 1

Views: 3513

Answers (2)

blak3r
blak3r

Reputation: 16536

Amiram sent me in the right direction. You can't set the Cursor on the "ToolStripMenuItem" you have to set it on the parent ContextMenuStrip.

As for the mouse events, that has to go on the ToolStripMenuItems. As the MouseMove event is not fired when the Mouse is over ToolStripMenuItems.

    // Init Code
    contextMenuStrip1.Cursor = Cursors.Hand;
    recentMessagesToolStripMenuItem.MouseLeave += new EventHandler(SetCursorToHandOn_MouseLeave);
    recentMessagesToolStripMenuItem.MouseEnter += new EventHandler(SetCursorToArrowOn_MouseEnter);


    private void SetCursorToArrowOn_MouseEnter(object sender, EventArgs e)
    {
        contextMenuStrip1.Cursor = Cursors.Arrow;
    }

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

Upvotes: 1

Amiram Korach
Amiram Korach

Reputation: 13286

Handle the MouseMove event of the whole ToolStrip and check if the current mouse location is between the toolStripItem.Bounds. if so, change ToolStrip.Cursor

Upvotes: 1

Related Questions