现在需要在winform中实现这样的功能:
就像.net IDE环境中左侧工具箱的效果?
例如我们新建一个c#windowsform 左侧的工具箱
鼠标经过从左侧移出
鼠标离开 工具箱又回去了 如何实现呢

解决方案 »

  1.   

    自己实现的话没试过,记得有一个第三方的,叫magic library(??)....
      

  2.   

    谢谢楼上提供信息 
    补充一下 我用。net2005
      

  3.   

    相关网站
    http://hd.cnblogs.com/archive/2005/10/27/263012.html
    http://hd.cnblogs.com/archive/2005/10/28/263800.html
    http://dragon.cnblogs.com/archive/2005/03/24/124771.aspx
    http://www.codeproject.com/cs/miscctrl/magicdocking.asp你看一下,绝对OK
      

  4.   

    还有一个叫DockPanelhttp://www.cnblogs.com/haoxiaobo/archive/2005/03/02/111493.aspx
      

  5.   

    刚才去那个官方网站下载了 不过运行总是说找不到DotNetMagic2005
    万分感谢啊!!!
    谁有代码可用的给一个 小弟急用
    [email protected]
      

  6.   

    用函数获取窗口的位置和大小,然后控制一个panel的位置使其在窗口左侧,捕捉鼠标的位置,判断是否进入某区域,在某区域内的话改变panel的坐标使其移动,移动速度可由定时器控制
      

  7.   

    下面是鼠标移到底部后底部移出面板的一段程序:
    bool isactive=false;
    private void messagelabel_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
    {

    if(!isactive&&this.Bottom-32<helloform.MousePosition.Y)
    {
    isactive=true;
    panel1.Left=this.Left;
    panel1.Top=this.Bottom-18;
    panel1.Visible=true;

    }

    if(isactive&&this.Bottom-32>=helloform.MousePosition.Y)
    {
    isactive=false;
    }
    } private void timer2_Tick(object sender, System.EventArgs e)
    {
    if(isactive&&panelmovestep<=35)
    {
    panel1.Top=this.Bottom-panelmovestep-18;
    panelmovestep++;
    }
    if(!isactive&&panelmovestep>0)
    {
    panel1.Top=this.Bottom-panelmovestep-18;
    panelmovestep--;
    }

    }