none
C# winform 给窗体画边框,panel的dock是full,画不成边框? RRS feed

  • 问题

  • 窗体的ControlBox是false,FormBordStyle为none。现在在上面加了一个panel控制,他的dock是full.在窗体Paint事件里面画边框。
    代码如下:
      private void Form2_Paint(object sender, PaintEventArgs e)
            {
                e.Graphics.DrawRectangle(Pens.Black, 0, 0, this.Width - 1, this.Height - 1);
            }
    如果没有Panel控制能画出来,或者panel的dock是none的话,我想问题出在panel的dock属性,应该怎么设置一下才可以画出来?谢谢各位了
    2010年2月23日 2:08

答案

  • 你好!
         你的边框是画在窗体的客户区内的,你把Panel控件的Dock属性设置成full,那么会覆盖所有客户区,所以也就把你绘制的边框覆盖了,解决方法是不要把Panel的Dock属性设置成full,你把Panel的Size设置成比边框小一些就可以看到边框了!
        希望对你有帮助!
    周雪峰
    2010年2月23日 2:25
    版主
  • 如果这样的话,你可以在  绘制panel

       private void panel1_Paint(object sender, PaintEventArgs e)
            {
                e.Graphics.DrawRectangle(Pens.Black, 0, 0, this.Width-1, this.Height-1);
            }
    努力+方法=成功
    2010年2月23日 2:27

全部回复

  • 被PANEL控件档住了吧

    2010年2月23日 2:23
  • 你好!
         你的边框是画在窗体的客户区内的,你把Panel控件的Dock属性设置成full,那么会覆盖所有客户区,所以也就把你绘制的边框覆盖了,解决方法是不要把Panel的Dock属性设置成full,你把Panel的Size设置成比边框小一些就可以看到边框了!
        希望对你有帮助!
    周雪峰
    2010年2月23日 2:25
    版主
  • 如果这样的话,你可以在  绘制panel

       private void panel1_Paint(object sender, PaintEventArgs e)
            {
                e.Graphics.DrawRectangle(Pens.Black, 0, 0, this.Width-1, this.Height-1);
            }
    努力+方法=成功
    2010年2月23日 2:27