精华内容
下载资源
问答
  • Winform中的Textbox添加圆角和边框,圆角大小和边框大小可以设置
  • C# winform 自定义边框

    万次阅读 2014-11-25 11:40:44
    C# winform 自定义边框

    C# winform 自定义边框

    如图:

    将winform窗体设置透明及this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;后窗体显示如图。

    现在我们要在form上自定义绘制边框。 程序如下:

            private void formMain_Paint(object sender, PaintEventArgs e)
            {
                Rectangle myRectangle = new Rectangle(0, 0, this.Width, this.Height);
                //ControlPaint.DrawBorder(e.Graphics, myRectangle, Color.Blue, ButtonBorderStyle.Solid);//画个边框 
                ControlPaint.DrawBorder(e.Graphics, myRectangle,
                    Color.Black, 3, ButtonBorderStyle.Solid,
                    Color.Black, 3, ButtonBorderStyle.Solid,
                    Color.Black, 3, ButtonBorderStyle.Solid,
                    Color.Blue, 3, ButtonBorderStyle.Solid
                );
            }

    private void InitializeComponent()
            {
                System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
                this.label1 = new System.Windows.Forms.Label();
                this.SuspendLayout();
                // 
                // label1
                // 
                this.label1.AutoSize = true;
                this.label1.Location = new System.Drawing.Point(38, 26);
                this.label1.Name = "label1";
                this.label1.Size = new System.Drawing.Size(107, 12);
                this.label1.TabIndex = 0;
                this.label1.Text = "这个窗体是透明的!";
                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.BackColor = System.Drawing.Color.Red;
                this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
                this.ClientSize = new System.Drawing.Size(284, 261);
                this.Controls.Add(this.label1);
                this.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(200)))), ((int)(((byte)(105)))));
                this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
                this.Name = "Form1";
                this.Text = "Form1";
                this.TransparencyKey = System.Drawing.Color.Red;
                this.Load += new System.EventHandler(this.Form1_Load);
                this.Paint += new System.Windows.Forms.PaintEventHandler(this.formMain_Paint);
                this.ResumeLayout(false);
                this.PerformLayout();
    
            }

    效果如下:


    展开全文
  • 截获消息,在原来的下边框位置在一条线 private int WM_PAINT = 0x000F ; protected override void WndProc( ref Message m) { base .WndProc( ref m); if (m.Msg == WM_PAINT) { Pen ...
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Windows.Forms;
    using System.Drawing;
    
    namespace ChineseCalender
    {
       public  class myTextBox:TextBox
        {
    
           public myTextBox()
             {
                //去掉边框
                 this.BorderStyle = BorderStyle.None;
                 // BackColor也可以自己设置
                 this.BackColor = SystemColors.Control;
             }
             //截获消息,在原来的下边框位置在画一条线
             private int WM_PAINT = 0x000F;
             protected override void WndProc(ref Message m)
             {
                 base.WndProc(ref m);
    
                 if (m.Msg == WM_PAINT)
                 {
                     Pen pen = new Pen(Brushes.Black, 1.5f);
                     using (Graphics g = this.CreateGraphics())
                     {
                         g.DrawLine(pen, new Point(0, this.Size.Height - 1), new Point(this.Size.Width, this.Size.Height - 1));
                     }
                 }
             }
        }
    }

     

    转载于:https://www.cnblogs.com/tanhu/p/8269715.html

    展开全文
  • WinForm 窗体的边框

    千次阅读 2019-09-29 23:41:52
    关键语句 窗口的设计视图在初始化方法(InitializeComponent)下,代码如下: 1 //…… 2 this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;...使用Winform默认窗体,是包含...

    关键语句

    窗口的设计视图在初始化方法(InitializeComponent)下,代码如下:

    1 //……
    2 this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
    3 //……

      在设计页面设置FormBorderStyle 为None。

     说明

    使用Winform默认窗体,是包含边框的。如下图所示:

     现在需要是的外部边框和工具栏不显示。效果如下所示:

     可以设置窗口的属性FormBorderStyle 为None。

    在*.Designer.cs的初始化方法(InitializeComponent)下,代码如下:

    1 //……
    2 this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 3 //……

     附录

    属性值

    说明

    None

    无边框

    FixedSingle

    固定的单行边框

    Fixed3D

    固定的三维边框

    FixedDialog

    固定对话框样式的粗边框

    Sizable

    可调整大小的边框

    FixedToolWindow

    可调整大小的工具边框。工具窗口不会显示在任务栏中。当前用户按Alt+Tab出现工具窗口。尽管指定FixedToolWindow窗体通常不显示在任务栏中,还必须确保ShowInTaskbar属性值为false。因为其默认值为true.

    SizableToolWindow

    可调整大小的工具边框。工具窗口不会显示在任务栏中。当前用户按Alt+Tab出现工具窗口。

    转载于:https://www.cnblogs.com/luyj00436/p/11547168.html

    展开全文
  • winform自己的边框已经过时,但小伙伴们又觉得自定义太过麻烦。本文将手把手教你自定义winform边框样式,并提供源代码链接(可直接作为模板使用)。话不多说,直接上操作步骤。 先上一张完成截图 一:去除...

     winform自己的边框已经过时,但小伙伴们又觉得自定义太过麻烦。本文将手把手教你自定义winform边框样式,并提供源代码链接(可直接作为模板使用)。话不多说,直接上操作步骤。

    先上一张完成截图

    一:去除winform边框,添加主面板,添加窗体四边(可自定义宽度和颜色,支持拖拽改变窗体大小)

    1、去除winform边框:将FormBorderStyle属性设置为none

    2、添加主面板:在此面板中,你可以自己添加窗体头(主要包括窗体icon,title,最大最小化按钮,关闭按钮等)

    3、在Form.cs文件中,写下下列代码(此节主要添加窗体四边边框,并使其支持拖拽改变窗体大小)

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace CustomForm
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                InitBorder();
            }
    
    
            private Point mousePoint = new Point();     //鼠标所在位置(top,left)
            System.Windows.Forms.Label[] labels = new System.Windows.Forms.Label[4];    //上下左右边框集合
            private int lastWidth = 0;                  //上次窗体宽度(改变窗体大小时使用)
            private int lastHeight = 0;                   //上次窗体高度(改变窗体大小时使用)
            /// <summary>
            /// 初始化窗体边框
            /// </summary>
            void InitBorder()
            {
    
                labels[0] = new System.Windows.Forms.Label();
                labels[1] = new System.Windows.Forms.Label();
                labels[2] = new System.Windows.Forms.Label();
                labels[3] = new System.Windows.Forms.Label();
    
                labels[0].BackColor = labels[2].BackColor = labels[1].BackColor = labels[3].BackColor = Color.FromArgb(188, 182, 211); //边框颜色
    
                Controls.Add(labels[0]);
                Controls.Add(labels[1]);
                Controls.Add(labels[2]);
                Controls.Add(labels[3]);
    
                labels[0].Cursor = labels[2].Cursor = Cursors.SizeWE;
                labels[1].Cursor = labels[3].Cursor = Cursors.SizeNS;
    
                labels[0].MouseDown += BorderMouseDown;
                labels[1].MouseDown += BorderMouseDown;
                labels[2].MouseDown += BorderMouseDown;
                labels[3].MouseDown += BorderMouseDown;
    
                labels[0].MouseMove += WMouseMove;
                labels[2].MouseMove += EMouseMove;
                labels[1].MouseMove += NMouseMove;
                labels[3].MouseMove += SMouseMove;
    
                labels[0].Dock = DockStyle.Left;
                labels[2].Dock = DockStyle.Right;
                labels[1].Dock = DockStyle.Top;
                labels[3].Dock = DockStyle.Bottom;
    
                UpdateBorder();
            }
    
            /// <summary>
            /// 边框鼠标按压事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void BorderMouseDown(object sender, MouseEventArgs e)
            {
                lastWidth = Width;
                lastHeight = Height;
                this.mousePoint.X = MousePosition.X;
                this.mousePoint.Y = MousePosition.Y;
            }
    
            /// <summary>
            /// 左边框拖动事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            /// <summary>
            /// 上边框拖动事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void WMouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    if (Width != MinimumSize.Width)
                    {
                        Left = MousePosition.X;
                    }
                    this.Width = lastWidth - (Control.MousePosition.X - mousePoint.X);
                }
    
            }
            /// <summary>
            /// 右边框边框拖动事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void EMouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    this.Width = lastWidth + (Control.MousePosition.X - mousePoint.X);
                }
    
            }
            private void NMouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    if (Height != MinimumSize.Height)
                    {
                        Top = MousePosition.Y;
                    }
                    this.Height = lastHeight - (Control.MousePosition.Y - mousePoint.Y);
                }
    
            }
            /// <summary>
            /// 下边框拖动事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void SMouseMove(object sender, MouseEventArgs e)
            {
                if (e.Button == MouseButtons.Left)
                {
                    this.Height = lastHeight + (Control.MousePosition.Y - mousePoint.Y);
                }
    
            }
    
            /// <summary>
            /// 自定义给窗体添加边框
            /// </summary>
            private void UpdateBorder()
            {
                labels[1].Height = labels[3].Height =2;
                labels[0].Width = labels[2].Width = 2;
            }
        }
    }
    

    成功截图:

    初始窗体

    改变大小后窗体

    二、添加窗体header和content

    布局结构

    页面效果:

    这部分功能对应代码 (与上步代码放在一起即可正常使用)

            /// <summary>
            /// 最小化按钮点击事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btn_minimize_Click(object sender, EventArgs e)
            {
                WindowState = FormWindowState.Minimized;
            }
    
            /// <summary>
            /// 关闭按钮点击事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btn_close_Click(object sender, EventArgs e)
            {
                Close();
            }
    
    
    
            /// <summary>
            /// 标题块按压事件(记住鼠标的位置)
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void pnl_titile_MouseDown(object sender, MouseEventArgs e)
            {
                this.mousePoint.X = e.X;
                this.mousePoint.Y = e.Y;
    
            }
            /// <summary>
            /// 鼠标移动事件(根据鼠标按下的位置和鼠标移动后的位置 移动窗体)
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void pnl_titile_MouseMove(object sender, MouseEventArgs e)
            {
    
                if (e.Button == MouseButtons.Left)
                {
                    this.Top = Control.MousePosition.Y - mousePoint.Y;
                    this.Left = Control.MousePosition.X - mousePoint.X;
                }
            }

    各部分支持功能

    至此,窗体自定义边框模板已完成。有需要的话,可以点击下面的链接获取源代码,如果觉得有帮助,请给予点赞或评论,转载的话注意标明出处,谢谢(~ ̄▽ ̄)~

    源代码链接

    链接:https://pan.baidu.com/s/1aLN6JtZkq_qrkI24a5qvKw
    提取码:89gn

    展开全文
  • c# winform 用鼠标拉出来的虚线框,鼠标框选边框
  • WinForm 个时钟

    2012-11-05 20:21:00
    程序的目的是要模拟出时钟的效果,那首先就是要出这个时钟的样子。不考虑美观,一个时钟最简单的组成是一个圆形的表盘,三根直线代表的时针、分针和秒针。 看起来很简单吧,但要怎么样呢?让我们一步一步来吧...
  • Winform的Panel绘制边框

    万次阅读 2017-01-08 21:48:50
    给Panel绘制边框能够达到一定的美感,这其实很简单,只需要编写Paint事件即可。 private void panel1_Paint(object sender, PaintEventArgs e) { //使用红色虚线绘制边框 Pen pen1 = new Pen(Color.Red, 1); pen...
  • 方法一、Winform Panel边框方法一:每边能设置不同的颜色、宽度和样式  1、拖一个 Panel控件到主窗体中,保持默认名称 panel1,BorderStyle 选择 Fixed3D。  2、双击 Panel1,打开后台代码文件,在 panel1_Paint...
  • 无法在属性面版里直接修改,可以在Paint事件里重。 private void panel1_Paint(object sender, PaintEventArgs e) { ControlPaint.DrawBorder(e.Graphics, this.panel1.ClientRectan...
  • Winform 无边框 绘制自定义边框

    千次阅读 2017-10-27 17:40:48
    private void LoginNew_Paint(object sender, PaintEventArgs e)  {  ///自定义绘制边框颜色  //e.Graphics.DrawRectangle(Pens.DarkOliveGreen, 0, 0, this.Width - 1, this.Height - 1);
  • using System;  using System.Collections.Generic;  using System.ComponentModel;  using System.Data;  using System.Drawing;  using System.Text;  using System.Windows.Forms;...namespace
  • 如图[img=https://img-bbs.csdn.net/upload/201509/01/1441079358_575041.png][/img]
  • 代码阐释:我这里是走固定的Excel模板,发现导出时一部分有边框的单元格消失了,所以选择用代码一个一个的单元格,网上有那种全是边框的代码,这里我只是在汇总表这块加边框.记得using相关包… 下面是实现代码及效果图...
  • C# 简单地在WinForm上放置一个有阴影边框的矩形面板,带阴影的Panel
  • // 在文字的四个方向各一个像素处绘制其它颜色的文字,以形成边框,否则可能看不清除文字 dc.DrawString(errMsg, font, Brushes.Red, point.X - 1f, point.Y); dc.DrawString(errMsg, font, Brushes.Red, point.X +...
  • winform c# 重绘groupBox 的边框颜色

    千次阅读 2013-08-30 08:03:59
    在groupbox的 paint事件中添加如下事件 private void groupBox1_Paint(object sender, PaintEventArgs e) { e.Graphics.Clear(groupBox1.BackColor); e.Graphics.DrawString(groupBox1.Text
  • 为DataGridView的RowPostPaint绑定事件RowPostPaint += DataGridView_RowPostPaint private void ZyDataGridView_RowPostPaint(object sender, ... //绘制选中行边框 using (Pen pen = new
  • winform 动态生成panel 动态生成透明panel 带边框的panel
  • WinformComboBox背景色

    千次阅读 2013-09-22 15:01:00
    画边框 // g.DrawRectangle(_BorderPen, new Rectangle(0, 0, this.Width, this.Height)); ControlPaint.DrawBorder(g, new Rectangle( 0 , 0 , this .Width, this .Height), borderColor, ...
  • 1、listview大图显示图片; 2、图片自动加边框; 3、contextmenustrip添加右键按钮,修改图片
  • DataGridView单元格合并(画边框实现)

    千次阅读 2013-05-20 11:36:33
    DataGridView单元格合并 ... 关于VS2005 WinForm下DataGridView单元格合并,背景色设置 private void Form1_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Col
  • 边框 border中只能容纳一个其他元素 BorderThickness:边框厚度 BorderBrush:边框颜色 CornerRadius:设置边框圆角 C#动画 动画的几大步骤 命名空间(必写) using System.Windows.Media.Animation; 1,找剧本,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,448
精华内容 579
关键字:

winform画边框