Form de size automatico

15/01/2010 - 16:17 por César | Informe spam
He estado probando la propiedad AutoSize del form pero no me funciona para
lo que esperaba. Quiero hacer un form sin borde para desplegar un mensajito
informativo que mando como parametro a su constructor pero es de longitud
variable y quisiera en el size del form se ajuste automaticamente al size
del label (y tambien se centre en la pantalla).
No se supone que el AutoSize es para eso? Hay alguna otra forma de hacerlo
a traves de propiedades sin tener uno mismo que calcular la posicion y el
size?

Preguntas similare

Leer las respuestas

#1 SoftJaén
16/01/2010 - 10:06 | Informe spam
"César" escribió:

Quiero hacer un form sin borde para desplegar un mensajito informativo que
mando como parametro a su constructor pero es de longitud variable y
quisiera en el size del form se ajuste automaticamente al size del label
(y tambien se centre en la pantalla).



Hola, César:

En el constructor sobrecargado del formulario donde deseas visualizar el
mensaje, prueba a ejecutar lo siguiente:

public Form2(string mensaje)
{
InitializeComponent();

this.FormBorderStyle = FormBorderStyle.None;
this.AutoSizeMode = AutoSizeMode.GrowAndShrink;
this.AutoSize = true;
this.StartPosition = FormStartPosition.CenterScreen;

label1.Text = mensaje;
label1.TextAlign = ContentAlignment.MiddleCenter;
}

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#2 César
16/01/2010 - 19:56 | Informe spam
Muchas Gracias SoftJaén.


"SoftJaén" escribió en el mensaje
news:
"César" escribió:

Quiero hacer un form sin borde para desplegar un mensajito informativo
que mando como parametro a su constructor pero es de longitud variable y
quisiera en el size del form se ajuste automaticamente al size del label
(y tambien se centre en la pantalla).



Hola, César:

En el constructor sobrecargado del formulario donde deseas visualizar el
mensaje, prueba a ejecutar lo siguiente:

public Form2(string mensaje)
{
InitializeComponent();

this.FormBorderStyle = FormBorderStyle.None;
this.AutoSizeMode = AutoSizeMode.GrowAndShrink;
this.AutoSize = true;
this.StartPosition = FormStartPosition.CenterScreen;

label1.Text = mensaje;
label1.TextAlign = ContentAlignment.MiddleCenter;
}

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o sugerido en el presente mensaje.


Respuesta Responder a este mensaje
#3 César
21/01/2010 - 16:42 | Informe spam
Hola Enrique,
Sabes si hay una manera de centrarlo encima del form que este activo en el
momento? He tratado con CenterParent pero no trabaja. Gracias

"SoftJaén" escribió en el mensaje
news:
"César" escribió:

Quiero hacer un form sin borde para desplegar un mensajito informativo
que mando como parametro a su constructor pero es de longitud variable y
quisiera en el size del form se ajuste automaticamente al size del label
(y tambien se centre en la pantalla).



Hola, César:

En el constructor sobrecargado del formulario donde deseas visualizar el
mensaje, prueba a ejecutar lo siguiente:

public Form2(string mensaje)
{
InitializeComponent();

this.FormBorderStyle = FormBorderStyle.None;
this.AutoSizeMode = AutoSizeMode.GrowAndShrink;
this.AutoSize = true;
this.StartPosition = FormStartPosition.CenterScreen;

label1.Text = mensaje;
label1.TextAlign = ContentAlignment.MiddleCenter;
}

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o sugerido en el presente mensaje.


Respuesta Responder a este mensaje
#4 SoftJaén
21/01/2010 - 20:58 | Informe spam
"César" preguntó:

Sabes si hay una manera de centrarlo encima del form que este activo en el
momento? He tratado con CenterParent pero no trabaja.




Como aparece en el ejemplo que te indiqué anteriormente, el formulario
estará centrado en la PANTALLA actual (FormStartPosition.CenterScreen). Pero
si deseas que se encuentre centrado dentro de los límites de su formulario
principal, entonces tienes que especificar el valor
FormStartPosition.CenterParent a la propiedad StartPosition del formulario.
Todo esto si el formulario lo muestras de manera MODAL mediante el método
ShowDialog(), y estableces dicho valor en el constructor del propio
formulario.

Si dices que "no trabaja" especificándole el valor CenterParent, será porque
estarás mostrando el formulario de manera NO MODAL, mediante el método
Show(). Si es así, tienes que especificar el valor FormStartPosition.Manual,
y establecer un valor adecuado a la propiedad Location del formulario, todo
ello en el constructor del formulario:

public Form2(string mensaje)
{
InitializeComponent();

this.FormBorderStyle = FormBorderStyle.None;
this.AutoSizeMode = AutoSizeMode.GrowAndShrink;
this.AutoSize = true;

// this.StartPosition = FormStartPosition.CenterScreen;

this.StartPosition = FormStartPosition.Manual;

// aquí tienes que asignar el punto donde deseas que
// aparezca situado el formulario no modal.
//
this.Location = new Point(coordenadaX, coordenadaY);

label1.Text = mensaje;
label1.TextAlign = ContentAlignment.MiddleCenter;
}


Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida