我尝试创建的内容与VS 2008和VS 2010中的“工具箱”非常相似。它将位于我的MDI父级的左侧,并在用户将鼠标悬停在其上时弹出。同样,这就像VS工具箱一样。
我的问题是实现这个的最佳方法是什么?请记住,我将它放在MDI父级的左侧,并使用VS 2008,C#和.NET 3.5。另外,我计划在工具栏中放置一个TreeView,因此无论使用什么都必须支持添加TreeView对象。
谢谢!
答案 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工具栏,但没有一个像这个一样有效。它的用户评价也很高。