C#方式实现垂直自动隐藏工具栏

时间:2012-01-14 09:08:17

标签: c# visual-studio visual-studio-2008 .net-3.5 toolbar

我尝试创建的内容与VS 2008和VS 2010中的“工具箱”非常相似。它将位于我的MDI父级的左侧,并在用户将鼠标悬停在其上时弹出。同样,这就像VS工具箱一样。

我的问题是实现这个的最佳方法是什么?请记住,我将它放在MDI父级的左侧,并使用VS 2008,C#和.NET 3.5。另外,我计划在工具栏中放置一个TreeView,因此无论使用什么都必须支持添加TreeView对象。

谢谢!

2 个答案:

答案 0 :(得分:2)

垂直自动隐藏工具栏,从我在线收集和测试,最好用ToolStrip对象实现,在我的情况下停靠在左侧。为了给出一个TreeView对象的外观,添加一个ToolStripButton。然后,将MouseHover事件添加到ToolStripButton,使Panel对象(也停靠在左侧)可见。显然,默认情况下最好使Panel对象不可见。然后,为Panel添加一个MouseLeave事件,这样当用户离开Panel时,Panel会再次变为不可见或“弹出”回来。

它没有像Visual Studio 2008/2010那样弹出的好效果,但它具有我需要的基本功能。

以下是MouseHover和MouseLeave事件的代码。非常简单。

    private void openPanel1ToolStripButton_MouseHover(object sender, EventArgs e)
    {
        if(panel1.Visible == false)
        {
            panel1.Visible = true;
        }
    }

    private void panel1_MouseLeave(object sender, EventArgs e)
    {
        if (panel2.Visible == true)
        {
            panel2.Visible = false;
        }
    }

答案 1 :(得分:1)

查看SourceForge上的DockPanel Suite。我在网上看到很多自定义控件试图模仿VS工具栏,但没有一个像这个一样有效。它的用户评价也很高。