大家好,刚接触WINFORM 想请教大家如何实现类似于WEB 中的 左侧展开与隐藏,上下折叠的效果。
很急,希望大家帮帮我!

解决方案 »

  1.   

    第三方组件,比如DotNetBar的OutLook组件http://www.devcomponents.com/dotnetbar/
      

  2.   

    ListView +  SplitContainer
      

  3.   

    XP style Explorer Bar
    http://www.codeproject.com/KB/miscctrl/XPTaskBar.aspx
      

  4.   

    www.codeproject.com里有现成的类似OUTLOOK界面的源码,下载一个看看就明白了
      

  5.   

    不用第三方控件的话 可以用自带的panle或窗体 可以提前设置panle或窗体的位置 也可以动态改变窗体的位置
    至于收缩就用api效果好一点 当然你需要做几个控制收缩的按钮好触发 此外就是窗体了动态改变位置大小 重绘窗体 
    以下是api收缩代码
    using System.Runtime.InteropServices; 
    #region//api 
            [DllImport("user32")] 
            private static extern bool AnimateWindow(IntPtr whnd, int dwtime, int dwflag); 
            //dwflag的取值如下 
            public const Int32 AW_HOR_POSITIVE = 0x00000001; 
            //从左到右显示 
            public const Int32 AW_HOR_NEGATIVE = 0x00000002; 
            //从右到左显示 
            public const Int32 AW_VER_POSITIVE = 0x00000004; 
            //从上到下显示 
            public const Int32 AW_VER_NEGATIVE = 0x00000008; 
            //从下到上显示 
            public const Int32 AW_CENTER = 0x00000010; 
            //若使用了AW_HIDE标志,则使窗口向内重叠,即收缩窗口;否则使窗口向外扩展,即展开窗口 
            public const Int32 AW_HIDE = 0x00010000; 
            //隐藏窗口,缺省则显示窗口 
            public const Int32 AW_ACTIVATE = 0x00020000; 
            //激活窗口。在使用了AW_HIDE标志后不能使用这个标志 
            public const Int32 AW_SLIDE = 0x00040000; 
            //使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略 
            public const Int32 AW_BLEND = 0x00080000; 
            //透明度从高到低 
            #endregion //从左到右 参数自己根据上面的替换实现不同的现实效果 
    AnimateWindow("控件或窗体名称".Handle, 1000, AW_SLIDE | AW_HIDE | AW_HOR_POSITIVE); 
    "控件或窗体名称".Show