Crear formulario de validación de usuario

10/02/2006 - 11:11 por Roberto | Informe spam
Buenos días, estoy creando una aplicación con formularios MDI y se me exige
que tenga acceso restringido. He creado un formulario con los típicos campos
de usuario, contraseña y un par de botones de aceptar y cancelar.
Me gustaria que al ejecutar el programa lo primero q apareciese fuera este
formulario y no el formulario principal de la aplicación ¿como lo hago?
Si no se me entiende lo que intento preguntar, por favor, decidmelo

Un saludo
Roberto

Preguntas similare

Leer las respuestas

#1 Roberto
10/02/2006 - 11:18 | Informe spam
He probado esto (justo cuando se carga el formulario principal):

private void frmPrincipal_Load(object sender, System.EventArgs e)

{

frmLogin frmValidar = new frmLogin();

frmValidar.MdiParent = this;

frmValidar.ShowDialog();

}

Pero me da el siguiente error:

Los formularios que no son de nivel superior no se pueden mostrar como
cuadros de diálogo modales. Quite el formulario de los formularios primarios
que lo contengan antes de llamar a showDialog.

A ver si alguien tiene una idea genial ;-)

Gracias por adelantado

Un saludo

Roberto
Respuesta Responder a este mensaje
#2 Jose Luis Manners
10/02/2006 - 14:21 | Informe spam
Debes hacerlo al reves. Primero muestra frmLogin y si los credenciales del
usuario son validos, entonces cargas frmPrincipal.
Coopera con el foro. Dinos si te sirvió la respuesta aquí planteada.

Saludos,

Jose Luis Manners, MCP
http://www.josemanners.com/

"Vale más saber alguna cosa de todo, que saberlo todo de una sola cosa."
-Blaise Pascal

"Roberto" wrote in message
news:43ec685c$
He probado esto (justo cuando se carga el formulario principal):

private void frmPrincipal_Load(object sender, System.EventArgs e)

{

frmLogin frmValidar = new frmLogin();

frmValidar.MdiParent = this;

frmValidar.ShowDialog();

}

Pero me da el siguiente error:

Los formularios que no son de nivel superior no se pueden mostrar como
cuadros de diálogo modales. Quite el formulario de los formularios


primarios
que lo contengan antes de llamar a showDialog.

A ver si alguien tiene una idea genial ;-)

Gracias por adelantado

Un saludo

Roberto


Respuesta Responder a este mensaje
#3 Jose Luis Manners
10/02/2006 - 15:03 | Informe spam
Hola Roberto,

Me puse a probar algo de codigo y me parece que lo puedes como deseas si
llamas al frmLogin desde el manejador para el evento Activated del
frmPrincipal. Esta manera te muestra el formulario MDI con el formulario de
login encima. Ya que el evento Activated se dispara cada vez que el
formulario principal se activa, debes tener algun tipo de comunicacion entre
los formularios para que frmPrincipal no muestre el formulario de login una
vez los credenciales hayan sido validados. Aqui te pongo un ejemplo que
hice para la una idea, me imagino que habra otras formas de hacerlo, estas
es solo una y quizas no la mas optima.

Form2 es el formulario MDI:

public class Form2 : System.Windows.Forms.Form
{
private bool showLogin;

private void InitializeComponent()
{
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(552, 366);
this.IsMdiContainer = true;
this.Name = "Form2";
this.Text = "Form2";
this.Load += new System.EventHandler(this.Form2_Load);
this.Activated += new System.EventHandler(this.Form2_Activated);
}

private void Form2_Load(object sender, System.EventArgs e)
{
showLogin = true;
}

private void Form2_Activated(object sender, System.EventArgs e)
{
if (showLogin)
{
LoginForm loginfrm = new LoginForm();
loginfrm.ShowDialog();
showLogin = !loginfrm.LoginSuccessfully;
}
}
}


LoginForm es el formulario para los credenciales:

public class LoginForm : System.Windows.Forms.Form
{
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Button btnLogin;
private bool bSuccess;

private void InitializeComponent()
{
this.btnCancel = new System.Windows.Forms.Button();
this.btnLogin = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// btnCancel
//
this.btnCancel.Location = new System.Drawing.Point(384, 64);
this.btnCancel.Name = "btnCancel";
this.btnCancel.TabIndex = 4;
this.btnCancel.Text = "Cancel";
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// btnLogin
//
this.btnLogin.Location = new System.Drawing.Point(384, 24);
this.btnLogin.Name = "btnLogin";
this.btnLogin.TabIndex = 5;
this.btnLogin.Text = "Login";
this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click);
//
// LoginForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(496, 126);
this.Controls.Add(this.btnLogin);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.textBox1);
this.Name = "LoginForm";
this.Text = "Login";
this.Load += new System.EventHandler(this.LoginForm_Load);
this.ResumeLayout(false);
}

private void btnCancel_Click(object sender, System.EventArgs e)
{
Application.Exit();
}

private void LoginForm_Load(object sender, System.EventArgs e)
{
bSuccess = false;
}

public bool LoginSuccessfully
{
get {return bSuccess;}
}

private void btnLogin_Click(object sender, System.EventArgs e)
{
// Validar credenciales aqui

// Si los credenciales son validos, cerrar este fomulario
bSuccess = true;
this.Close();
}
}


Coopera con el foro. Dinos si te sirvió la respuesta aquí planteada.

Saludos,

Jose Luis Manners, MCP
http://www.josemanners.com/

"Vale más saber alguna cosa de todo, que saberlo todo de una sola cosa."
-Blaise Pascal

"Roberto" wrote in message
news:43ec66ec$
Buenos días, estoy creando una aplicación con formularios MDI y se me


exige
que tenga acceso restringido. He creado un formulario con los típicos


campos
de usuario, contraseña y un par de botones de aceptar y cancelar.
Me gustaria que al ejecutar el programa lo primero q apareciese fuera este
formulario y no el formulario principal de la aplicación ¿como lo hago?
Si no se me entiende lo que intento preguntar, por favor, decidmelo

Un saludo
Roberto


Respuesta Responder a este mensaje
#4 Carlos Stange
10/02/2006 - 15:12 | Informe spam
Roberto escribió:
Buenos días, estoy creando una aplicación con formularios MDI y se me exige
que tenga acceso restringido. He creado un formulario con los típicos campos
de usuario, contraseña y un par de botones de aceptar y cancelar.
Me gustaria que al ejecutar el programa lo primero q apareciese fuera este
formulario y no el formulario principal de la aplicación ¿como lo hago?
Si no se me entiende lo que intento preguntar, por favor, decidmelo

Un saludo
Roberto




Hola,

En vez de cargar el form principal, carga el de login y dependiendo de
el resultado (si es correcto o no) cargas el formulario mdi.


Saludos,
Respuesta Responder a este mensaje
#5 Roberto
10/02/2006 - 16:34 | Informe spam
Muchas gracias a los dos, al final lo que he hecho ha sido cargar primero el
form de login (me parece q queda más "chulo").

Nuevamente muchas gracias a ambos

Un saludo
Roberto
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida