Formulario invisible

10/03/2009 - 11:43 por A Trujillo | Informe spam
Hola grupo,

En Visual Studio 2008 Express, tengo una aplicación Windows que consta de un
formulario que se muestra (se mantiene en memoria solo unos pocos segundos,
con un timer) solo si satisface ciertas condiciones.

Estos pocos segundos que se mantiene en memoria no deseo que sea visible, y
he estado usando el siguiente método por su simpleza:

// Globally accessible
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

//Hide (FormLoad)
ShowWindow(this.Handle, 0);

Pero no me gusta porque parpadea un poco al momento de efectuarse la
invisibilidad, ¿Podéis sugerirme otra solución?

Muchas gracias de antemano,
Alberto

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
10/03/2009 - 16:26 | Informe spam
"A Trujillo" wrote in message
news:
[...] un formulario que se muestra [...]
solo si satisface ciertas condiciones.

Estos pocos segundos que se mantiene en memoria no deseo que sea visible,
y
[...]
Pero no me gusta porque parpadea un poco al momento de efectuarse la
invisibilidad, ¿Podéis sugerirme otra solución?



¿Por qué no te limitas a hacer el "new" del formulario para crearlo, sin
llamar en ningún momento al "Show", y de esa manera nunca llegará a verse?
Es más, si nunca quieres que se vea, podrías hacer una simple Clase
normal y corriente, sin necesidad de que herede de "Form". ¿Por qué estás
usando un formulario, si no tiene que verse?
Respuesta Responder a este mensaje
#2 xcal
10/03/2009 - 16:54 | Informe spam
Acabe de usar MyForm.Show() MyForm.Hide()
y MyForm hereda de Form limpiando el metodo onpaint con override onpaint de
Form
eso podria ayudarte

saludos, Carlos

"A Trujillo" escribió en el mensaje
news:
Hola grupo,

En Visual Studio 2008 Express, tengo una aplicación Windows que consta de
un
formulario que se muestra (se mantiene en memoria solo unos pocos
segundos,
con un timer) solo si satisface ciertas condiciones.

Estos pocos segundos que se mantiene en memoria no deseo que sea visible,
y
he estado usando el siguiente método por su simpleza:

// Globally accessible
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

//Hide (FormLoad)
ShowWindow(this.Handle, 0);

Pero no me gusta porque parpadea un poco al momento de efectuarse la
invisibilidad, ¿Podéis sugerirme otra solución?

Muchas gracias de antemano,
Alberto
Respuesta Responder a este mensaje
#3 A Trujillo
11/03/2009 - 14:32 | Informe spam
Muchas gracias Alberto,
Lo que comentas suena muy sensato. Como nunca he explorado esa manera de
desarrollar mis aplicaciones tendría que experimentar un poco.
Entiendo que lo que dices de crear una clase sin heredar de "Form", implica
instanciar dicha clase desde la "main function".
Aunque posiblemente la otra opción, hacer el "new" pero no el "show" se
ajuste más a mi situación porque como dije, bajo ciertas circuntancias
debería mostrarse el form.
Lo dicho, muchas gracias por tus sugerencias, aprecio tu tiempo,
Saludos desde Poole, Alberto.
"Alberto Poblacion" wrote
in message news:
"A Trujillo" wrote in message
news:
[...] un formulario que se muestra [...]
solo si satisface ciertas condiciones.

Estos pocos segundos que se mantiene en memoria no deseo que sea visible,
y
[...]
Pero no me gusta porque parpadea un poco al momento de efectuarse la
invisibilidad, ¿Podéis sugerirme otra solución?



¿Por qué no te limitas a hacer el "new" del formulario para crearlo, sin
llamar en ningún momento al "Show", y de esa manera nunca llegará a verse?
Es más, si nunca quieres que se vea, podrías hacer una simple Clase
normal y corriente, sin necesidad de que herede de "Form". ¿Por qué estás
usando un formulario, si no tiene que verse?

Respuesta Responder a este mensaje
#4 A Trujillo
11/03/2009 - 14:38 | Informe spam
Hola xcal,
Muchas gracias por contestar. Estuve intentando como sugieres.
Quizá el modo como lo hice no fue el correcto: puse el MyForm.Hide() dentro
del MyForm_Load, pero se mostraba el form por una fracción de segundo, y no
me gustaba el efecto.
Muchas gracias por tu tiempo, un atento saludo,
Alberto
"xcal" <d22> wrote in message news:

Acabe de usar MyForm.Show() MyForm.Hide()
y MyForm hereda de Form limpiando el metodo onpaint con override onpaint
de Form
eso podria ayudarte

saludos, Carlos

"A Trujillo" escribió en el mensaje
news:
Hola grupo,

En Visual Studio 2008 Express, tengo una aplicación Windows que consta de
un
formulario que se muestra (se mantiene en memoria solo unos pocos
segundos,
con un timer) solo si satisface ciertas condiciones.

Estos pocos segundos que se mantiene en memoria no deseo que sea visible,
y
he estado usando el siguiente método por su simpleza:

// Globally accessible
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

//Hide (FormLoad)
ShowWindow(this.Handle, 0);

Pero no me gusta porque parpadea un poco al momento de efectuarse la
invisibilidad, ¿Podéis sugerirme otra solución?

Muchas gracias de antemano,
Alberto




Respuesta Responder a este mensaje
#5 xcal
11/03/2009 - 21:52 | Informe spam
hola Alberto, asi me quedó

public class Form1 : Form
{
MyForm form = new MyForm();

void Button1Click(object sender, EventArgs e)
{
form.Show();
}

void Button2Click(object sender, EventArgs e)
{
form.Hide();
}
}

public class MyForm:Form
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
}
}

}

saludos
Carlos.

"A Trujillo" escribió en el mensaje
news:
Hola xcal,
Muchas gracias por contestar. Estuve intentando como sugieres.
Quizá el modo como lo hice no fue el correcto: puse el MyForm.Hide()
dentro del MyForm_Load, pero se mostraba el form por una fracción de
segundo, y no me gustaba el efecto.
Muchas gracias por tu tiempo, un atento saludo,
Alberto
"xcal" <d22> wrote in message
news:

Acabe de usar MyForm.Show() MyForm.Hide()
y MyForm hereda de Form limpiando el metodo onpaint con override onpaint
de Form
eso podria ayudarte

saludos, Carlos

"A Trujillo" escribió en el mensaje
news:
Hola grupo,

En Visual Studio 2008 Express, tengo una aplicación Windows que consta
de un
formulario que se muestra (se mantiene en memoria solo unos pocos
segundos,
con un timer) solo si satisface ciertas condiciones.

Estos pocos segundos que se mantiene en memoria no deseo que sea
visible, y
he estado usando el siguiente método por su simpleza:

// Globally accessible
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

//Hide (FormLoad)
ShowWindow(this.Handle, 0);

Pero no me gusta porque parpadea un poco al momento de efectuarse la
invisibilidad, ¿Podéis sugerirme otra solución?

Muchas gracias de antemano,
Alberto








Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida