none
c#自己制作无边框窗体? RRS feed

  • 问题

  • 我自己做一个窗体,把C#默认的窗体边框设为NONE,  自己用图片做了一个标题栏。
    但是遇到几个问题:
    1.当我把窗体最大化时,窗体把任务覆盖了。
    2.鼠标移到窗体边缘时,不能拉伸窗体,
    这几个问题,怎么解决,谢谢?

    2009年5月7日 10:47

答案

  • 你好! 

    1. 最大化可以通过自己获取屏幕的工作区域来实现 

    this.MaximizedBounds = Screen.FromControl(this).WorkingArea; 
    this.WindowState = FormWindowState.Maximized; 
    

    2. 拖动大小可以在右下角放一个Panel通过Panel的MouseDown时自己重新计算 From 的Size, MouseUp取消计算 Form 的Size 可以通过 Form 的 Location, Size 和 Mouse 的 X, Y 属性得出
    知识改变命运,奋斗成就人生!
    2009年5月7日 13:00
    版主
  • 你好!
         关于第2点,我补充一下,可以通过MouseMove事件内部来检测鼠标是否在边框上,然后和MouseDown和MouseUp事件配合来从新设置Size属性,这样来模拟边框拖动的效果!
    周雪峰
    2009年5月7日 13:40
    版主

全部回复

  • 你好! 

    1. 最大化可以通过自己获取屏幕的工作区域来实现 

    this.MaximizedBounds = Screen.FromControl(this).WorkingArea; 
    this.WindowState = FormWindowState.Maximized; 
    

    2. 拖动大小可以在右下角放一个Panel通过Panel的MouseDown时自己重新计算 From 的Size, MouseUp取消计算 Form 的Size 可以通过 Form 的 Location, Size 和 Mouse 的 X, Y 属性得出
    知识改变命运,奋斗成就人生!
    2009年5月7日 13:00
    版主
  • 你好!
         关于第2点,我补充一下,可以通过MouseMove事件内部来检测鼠标是否在边框上,然后和MouseDown和MouseUp事件配合来从新设置Size属性,这样来模拟边框拖动的效果!
    周雪峰
    2009年5月7日 13:40
    版主