Desafortunadamente, hay un problema en Windows 10 (al menos en algunas compilaciones) con FormBorderStyle.Noneel cambio de tamaño del formulario .
Rekshino
75
si Blue Border thats on top of the Window Formse refiere a la barra de título , establezca la ControlBoxpropiedad Forms en falsey la Textpropiedad en una cadena vacía ("").
Su solución tiene la ventaja sobre el establecimiento de estilo de borde en Ninguno, porque ... que deja intacta la frontera :) 1
Espectro
Y de alguna manera, si lo hace a través de FormBorderStyle.None, le impide dibujar en el formulario de alguna manera (OnPaint establece una imagen en un cuadro de imagen que tiene su Dockconfiguración Fill), funcionó bien hasta que cambié la configuración del borde con FormBorderStyle.None, pero de esta manera, el dibujo todavía funciona para yo :)
DrCopyPaste
@JohnNguyen no funciona? eso es extraño, ¿estás seguro de que lo has implementado correctamente?
Nika G.
2
Esta solución parece verse realmente mal en Windows 10 - la barra de título "oculta" no desaparece por completo - dejando un "bulto" en la parte superior de la ventana. Supongo que esto se debe a los bordes delgados de la ventana de Windows 10. No he encontrado una forma de evitar esto. Parece que estoy atrapado en la ruta FormBorderStyle.None .
Fool Running
1
configurar FormBorderStyle en Sizable con la sugerencia anterior funciona, pero tenga en cuenta que Windows 10 agrega una barra antiestética en la parte superior de la ventana fuera del rectángulo del cliente que parece ser el área de captura / borde de cambio de tamaño para cambiar el tamaño de la ventana verticalmente ( parece que el borde superior se representa dentro del borde visible del formulario y los demás se representan fuera de o_O).
Coloque esas 3 líneas de código en el evento OnLoad del formulario y debería tener un buen formulario 'flotante' que se pueda arrastrar con un borde delgado (use FormBorderStyle.None si no desea ningún borde).
Esta opción hace que la ventana sea de tamaño considerable. Mucho mejor que establecer FormBorderStyle en None. Justo lo que quería.
Antonio Rodríguez
hola @ AntonioRodríguez, ¿cómo puedes cambiar el tamaño de este formulario? Tengo un formulario normal, y puse esto en el evento Load, mostró un borde de una sola línea + sin formulario de barra de título, pero no puedo cambiar el tamaño (estoy en Windows 10) this.ControlBox = false; this.Text = String.Empty; this.FormBorderStyle = FormBorderStyle.FixedSingle;
No hay forma de mantener una forma considerable sin bordes y no tener esa pequeña y molesta barra de título en la parte superior. Incluso usar Win32 directamente no lo eliminará. Si no tiene borde, debe implementar sus propios métodos para cerrar, maximizar, minimizar, que son bastante fáciles. Sin embargo, implementar un tamaño considerable es un verdadero dolor de cabeza para ser infalible. Lo intenté, pero finalmente me di por vencido, es mucho trabajo para no ganar mucho.
djack109
1
Estoy compartiendo mi código. form1.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;
namespaceBorderExp
{
publicpartialclassForm1 : Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidForm1_Load(object sender, EventArgs e)
{
FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
}
privatevoidExitClick(object sender, EventArgs e)
{
Application.Exit();
}
privatevoidMaxClick(object sender, EventArgs e)
{
if (WindowState ==FormWindowState.Normal)
{
this.WindowState = FormWindowState.Maximized;
}
else
{
this.WindowState = FormWindowState.Normal;
}
}
privatevoidMinClick(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}
}
}
Ahora, el diseñador: -
namespaceBorderExp
{
partialclassForm1
{
///<summary>/// Required designer variable.///</summary>private System.ComponentModel.IContainer components = null;
///<summary>/// Clean up any resources being used.///</summary>///<param name="disposing">true if managed resources should be disposed; otherwise, false.</param>protectedoverridevoidDispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code///<summary>/// Required method for Designer support - do not modify/// the contents of this method with the code editor.///</summary>privatevoidInitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.SuspendLayout();
// // button1// this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.button1.BackColor = System.Drawing.SystemColors.ButtonFace;
this.button1.BackgroundImage = global::BorderExp.Properties.Resources.blank_1_;
this.button1.FlatAppearance.BorderSize = 0;
this.button1.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button1.Location = new System.Drawing.Point(376, 1);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(27, 26);
this.button1.TabIndex = 0;
this.button1.Text = "X";
this.button1.UseVisualStyleBackColor = false;
this.button1.Click += new System.EventHandler(this.ExitClick);
// // button2// this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.button2.BackColor = System.Drawing.SystemColors.ButtonFace;
this.button2.BackgroundImage = global::BorderExp.Properties.Resources.blank_1_;
this.button2.FlatAppearance.BorderSize = 0;
this.button2.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button2.Location = new System.Drawing.Point(343, 1);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(27, 26);
this.button2.TabIndex = 1;
this.button2.Text = "[]";
this.button2.UseVisualStyleBackColor = false;
this.button2.Click += new System.EventHandler(this.MaxClick);
// // button3// this.button3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.button3.BackColor = System.Drawing.SystemColors.ButtonFace;
this.button3.BackgroundImage = global::BorderExp.Properties.Resources.blank_1_;
this.button3.FlatAppearance.BorderSize = 0;
this.button3.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button3.Location = new System.Drawing.Point(310, 1);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(27, 26);
this.button3.TabIndex = 2;
this.button3.Text = "___";
this.button3.UseVisualStyleBackColor = false;
this.button3.Click += new System.EventHandler(this.MinClick);
// // Form1// this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackgroundImage = global::BorderExp.Properties.Resources.blank_1_;
this.ClientSize = new System.Drawing.Size(403, 320);
this.ControlBox = false;
this.Controls.Add(this.button3);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
#endregionprivate System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button3;
}
}
Respuestas:
Puede establecer la propiedad
FormBorderStyle
en none en el diseñador o en el código:this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
fuente
FormBorderStyle.None
el cambio de tamaño del formulario .si
Blue Border thats on top of the Window Form
se refiere a la barra de título , establezca laControlBox
propiedad Forms enfalse
y laText
propiedad en una cadena vacía ("").aquí hay un fragmento:
this.ControlBox = false; this.Text = String.Empty;
fuente
FormBorderStyle.None
, le impide dibujar en el formulario de alguna manera (OnPaint establece una imagen en un cuadro de imagen que tiene suDock
configuraciónFill
), funcionó bien hasta que cambié la configuración del borde conFormBorderStyle.None
, pero de esta manera, el dibujo todavía funciona para yo :)fuente
También agregue este fragmento de código a su formulario para permitir que aún se pueda arrastrar.
Simplemente agréguelo justo antes del constructor (el método que llama a InitializeComponent ()
private const int WM_NCHITTEST = 0x84; private const int HTCLIENT = 0x1; private const int HTCAPTION = 0x2; /// /// Handling the window messages /// protected override void WndProc(ref Message message) { base.WndProc(ref message); if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT) message.Result = (IntPtr)HTCAPTION; }
Ese código es de: https://jachman.wordpress.com/2006/06/08/enhanced-drag-and-move-winforms-without-having-a-titlebar/
Ahora, para deshacerse de la barra de título pero aún tener un borde, combine el código de la otra respuesta:
this.ControlBox = falso;
this.Text = String.Empty;
con esta línea:
this.FormBorderStyle = FormBorderStyle.FixedSingle;
Coloque esas 3 líneas de código en el evento OnLoad del formulario y debería tener un buen formulario 'flotante' que se pueda arrastrar con un borde delgado (use FormBorderStyle.None si no desea ningún borde).
fuente
fuente
Conjunto
FormsBorderStyle
del formulario aNone
.Si lo hace, depende de usted cómo implementar la funcionalidad de arrastrar y cerrar de la ventana.
fuente
Estoy compartiendo mi código. form1.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 BorderExp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; } private void ExitClick(object sender, EventArgs e) { Application.Exit(); } private void MaxClick(object sender, EventArgs e) { if (WindowState ==FormWindowState.Normal) { this.WindowState = FormWindowState.Maximized; } else { this.WindowState = FormWindowState.Normal; } } private void MinClick(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; } } }
Ahora, el diseñador: -
namespace BorderExp { partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.button3 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // button1 // this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.button1.BackColor = System.Drawing.SystemColors.ButtonFace; this.button1.BackgroundImage = global::BorderExp.Properties.Resources.blank_1_; this.button1.FlatAppearance.BorderSize = 0; this.button1.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.button1.Location = new System.Drawing.Point(376, 1); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(27, 26); this.button1.TabIndex = 0; this.button1.Text = "X"; this.button1.UseVisualStyleBackColor = false; this.button1.Click += new System.EventHandler(this.ExitClick); // // button2 // this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.button2.BackColor = System.Drawing.SystemColors.ButtonFace; this.button2.BackgroundImage = global::BorderExp.Properties.Resources.blank_1_; this.button2.FlatAppearance.BorderSize = 0; this.button2.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.button2.Location = new System.Drawing.Point(343, 1); this.button2.Name = "button2"; this.button2.Size = new System.Drawing.Size(27, 26); this.button2.TabIndex = 1; this.button2.Text = "[]"; this.button2.UseVisualStyleBackColor = false; this.button2.Click += new System.EventHandler(this.MaxClick); // // button3 // this.button3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.button3.BackColor = System.Drawing.SystemColors.ButtonFace; this.button3.BackgroundImage = global::BorderExp.Properties.Resources.blank_1_; this.button3.FlatAppearance.BorderSize = 0; this.button3.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.button3.Location = new System.Drawing.Point(310, 1); this.button3.Name = "button3"; this.button3.Size = new System.Drawing.Size(27, 26); this.button3.TabIndex = 2; this.button3.Text = "___"; this.button3.UseVisualStyleBackColor = false; this.button3.Click += new System.EventHandler(this.MinClick); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackgroundImage = global::BorderExp.Properties.Resources.blank_1_; this.ClientSize = new System.Drawing.Size(403, 320); this.ControlBox = false; this.Controls.Add(this.button3); this.Controls.Add(this.button2); this.Controls.Add(this.button1); this.Name = "Form1"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Form1"; this.Load += new System.EventHandler(this.Form1_Load); this.ResumeLayout(false); } #endregion private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2; private System.Windows.Forms.Button button3; } }
la captura de pantalla: - NoBorderForm
fuente