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();
}
效果如下: