在vs2005开发环境中 C#语言我想做一个 自定义的窗体画面窗体最上面的系统自带的那个titlebar我不想要。因此我们窗体显示的模式选择了一个none.这样窗体 标题都没有了。现在 我想 用自己画好的图片去代替那个头上的那个 TitleBar然后 仍须实现 最大化  最小化  关闭的按钮功能。(这三个按钮 是图片)求 代码:
      

解决方案 »

  1.   

    去掉winform边框,实现最大化最小化及关闭功能 http://www.cnblogs.com/pon/archive/2010/05/19/1739388.html
      

  2.   


      private void TopClose_Click(object sender, RoutedEventArgs e)
            {
                this.Close();
            }        private void TopMax_Click(object sender, RoutedEventArgs e)
            {
                if (this.WindowState == WindowState.Maximized)
                {
                    this.WindowState = WindowState.Normal;
                }
                else
                {
                    this.WindowState = WindowState.Maximized;
                }
            }        private void TopMin_Click(object sender, RoutedEventArgs e)
            {
                this.WindowState = WindowState.Minimized;
            }
      

  3.   

    这是WPF的代码 不知道Winform 能不能用试一下吧.
      

  4.   

    this.WindowState = FormWindowState.Maximized;
      

  5.   

    就楼主需求。写了个例子。下载去吧。
    http://download.csdn.net/source/2391379
      

  6.   

    非常感谢。。但是现在 又遇到个问题。我现在 那个头上的titile做好了。但是 整个窗体 没有了边框了(因为:把formborderstyle 设为了 none)怎么加个边框阿 ?  
      

  7.   

    我以为上传错了呢。下载后运行ok的。莫非是win7不同?
      

  8.   

    不是 应为我下载的那个代码中,Mousedown中 dx = -e.x ,dy = -y;
    改成正的就好了
    protected override void OnLoad(EventArgs e)
            {
                base.OnLoad(e);            //picLeftTop
                picLeftTop.MouseDown += PL_MouseDown;            //pictureBox4
                pictureBox4.MouseDown += PL_MouseDown;            //pictureBox5
                pictureBox5.MouseDown += PL_MouseDown;            picLeftTop.MouseMove += PL_MouseMove;
                picLeftTop.MouseDown += PL_MouseDown;
                pictureBox4.MouseMove += PL_MouseMove;
                pictureBox5.MouseMove += PL_MouseMove;            
            }        
            void PL_MouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    //pt = Control.MousePosition;
                    dx1 = e.X;
                    dy1 = e.Y;
                    //IsMove = false;
                    pt.Offset(dx1 - dx, dy1 - dy);
                    Location = pt;            }
            }
            void PL_MouseDown(object sender, MouseEventArgs e)
            {
                dx = e.X;
                dy = e.Y;
            }
      

  9.   


    知道怎么 给 把formborderstyle= none的窗体加上边框吗?
      

  10.   


     protected override void OnPaintBackground(PaintEventArgs e)
            {
                base.OnPaintBackground(e);
                ControlPaint.DrawBorder3D(e.Graphics, 0, 0, Width, Height);
            }
    这句代码对吧?〉
    怎么使用阿