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ó:

Mostrar la cita
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.
#2 César
16/01/2010 - 19:56 | Informe spam
Muchas Gracias SoftJaén.


"SoftJaén" escribió en el mensaje
news:
Mostrar la cita
#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:
Mostrar la cita
#4 SoftJaén
21/01/2010 - 20:58 | Informe spam
"César" preguntó:

Mostrar la cita
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.
Ads by Google
Search Busqueda sugerida