elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Problema con C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con C#  (Leído 4,376 veces)
Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.048


Nueva Vida


Ver Perfil WWW
Problema con C#
« en: 4 Noviembre 2007, 04:23 am »

Hola, agradeceria si alguien me puede ayudar con algunas dudas que tengo, el lenguage es .Net Aplicacion de Windows en C#.

1. Tengo 2 form(form1 y form2), desde el form1 abro el form2 como modal, en el fom2 hay un button, al dar click en el button se tienen que cerrar el form1 y form2(¿Como hago eso posible?). Desde el form1 abro el form2 con la siguiente instruccion:

Citar
Form frm = new form2();
frm.Showdialog();

2. Tengo 2 form(form1 y form2) en el form1 hay un datagridview(datagridview1) este control esta conectado con la propiedad DATASOURCE a una tabla en una base de datos. Desde el form1 se abre un form2 en modo Modal (ShowDialog()). El problema es el siguiente, al cerrar el form2, se debe de actualizar el datagridview1(¿Como se hago esto posible?)

Desde ya gracias de antemano.


En línea

P[i]


Desconectado Desconectado

Mensajes: 472


Ver Perfil
Re: Problema con C#
« Respuesta #1 en: 4 Noviembre 2007, 16:14 pm »

 Para el primero se puede hacer de muchas formas una es utilizando eventos y quedaria algo como:

Código:
void Funcion_que_llama_al_form2()
{
  Form frm = new form2();
  //supongo que el boton se llama btncerrartodo
  frm.btncerrartodo.Click += new System.EventHandler(this.cerraresto);
  frm.ShowDialog();
}

void cerraresto (object sender, EventArgs e)
{
    this.Close();
}
/*
Como ves no hace falta meter nada en el form2 solo en code del form1.
*/


El 2 pues lo unico que se tiene que hacer es declarar publico el datagridview1 y despues cuando cierres el form2  creas un nuevo evente closed y pones algo como:

Código:
void CerrarForm2(object ......)
{
  Bueno y dentro de esto pues actualizamos ahora no me acuerdo muy bien de como era esto pero se encuentra rapido. no se si era update o algo asi.
}

Saludos.


En línea

gusman

Desconectado Desconectado

Mensajes: 43



Ver Perfil WWW
Re: Problema con C#
« Respuesta #2 en: 5 Noviembre 2007, 00:24 am »

Buenas.

También puedes crear una referencia al form de origen para poder acceder a sus controles, por ejemplo:

Código
  1. public partial class Form1 : Form
  2. {
  3.  
  4.    //controles, variables y genas varias blablabla
  5.  
  6.    internal DataGridView dataGridView1;
  7.  
  8.    void mostrar_form2()
  9.    {
  10.           Form2 frm = new Form2();
  11.           frm.parent = this;
  12.           frm.ShowDialog();
  13.    }
  14.  
  15.  
  16. }
  17.  
  18. public partial class Form2 : Form
  19. {
  20.  
  21.    //controles, variables y genas varias blablabla
  22.  
  23.    internal Form1 parent;
  24.  
  25.    void cerrarform()
  26.    {
  27.           parent.dataGridView1.Refresh(); //o update o lo que tengas que hacer
  28.           this.close();
  29.  
  30.    }
  31.  
  32.  
  33. }

Fíjate que en el form1 he definido el dgv como internal, es para que haya acceso entre los módulos de la misma aplicación; si los controles los metes desde el diseñador cámbiales la propiedad Modifier a internal.

Lo bueno de este sistema es que dispones todavía de los datos del Form2 cuando vas a refrescar, y pueden ser útiles para hacer distintas cosas dependiendo del contenido del interfaz.

Un saludo.
En línea

No está muerto todo lo que yace y con extraños evos hasta la misma muerte puede morir.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines