Cómo se puede refrescar y llenar un datagrid en un form desde ot ro

11/11/2005 - 09:00 por MM | Informe spam
Hola Grupo:
Tengo un form, form1 con un DataGrid que lo abro y lleno su DataGrid con:
dataSet11.Clear
odbcDataAdapter.Fill(dataSet11)
dataGrid1.SetDataBinding (dataSet11."tabla1")
A continuacion abro un segundo formulario, form2, con un registro
seleccionado desde el dataGrid del form1, modifico el registro y me gustaría
refrescar el DataGrid del form1 antes o inmediatamente después de cerrar el
form2.
Cómo puedo referenciar desde fuera de form1 el dataSet, el dataGrid, etc
para actualizarlo?. Un saludo y gracias.

Preguntas similare

Leer las respuestas

#1 José Miguel Torres
11/11/2005 - 09:44 | Informe spam
Hola,

Prodrías implementar una función o procedimiento estático en Form1 que
refrescara el DataGrid, y llamarlo desde Form2 así
Form1.funcionRefrescar();, esta podría ser una solución...

saludos


José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es
http://jmtorres.blogspot.com

"MM" escribió en el mensaje
news:
Hola Grupo:
Tengo un form, form1 con un DataGrid que lo abro y lleno su DataGrid con:
dataSet11.Clear
odbcDataAdapter.Fill(dataSet11)
dataGrid1.SetDataBinding (dataSet11."tabla1")
A continuacion abro un segundo formulario, form2, con un registro
seleccionado desde el dataGrid del form1, modifico el registro y me
gustaría
refrescar el DataGrid del form1 antes o inmediatamente después de cerrar
el
form2.
Cómo puedo referenciar desde fuera de form1 el dataSet, el dataGrid, etc
para actualizarlo?. Un saludo y gracias.
Respuesta Responder a este mensaje
#2 Benton
11/11/2005 - 18:04 | Informe spam
Tengo un form, form1 con un DataGrid que lo abro y lleno su DataGrid.
A continuacion abro un segundo formulario, form2 ... me gustaría
refrescar el DataGrid del form1 antes o inmediatamente después de cerrar
el
form2.
Cómo puedo referenciar desde fuera de form1 el dataSet, el dataGrid, etc
para actualizarlo?



El la clase form2 declara objetos datasource y data grid, y en el
constructor les das un valor que vendrá desde form1:

public partial class Form2 : Form
{
private DataSource dataSource;
private DataGrid dataGrid;

public fmBusRegistros(DataSource dataSource, DataGrid dataGrid)

{

InitializeComponent();

this.dataSource = dataSource;
this.dataGrid = dataGrid;
}
...

y desde el form1, usas el form2 así:

Form2 fm2 = new Form2(miDatasource, miDatagrid);
fm2.Show();

De esa manera, en el form2 los objetos privados dataSource y dataGrid son
referencias ("apuntadores") a los objetos correspondientes en el form1, y
puedes trabajarlos desde allí.

Saludos,

-Benton
Respuesta Responder a este mensaje
#3 Tristan
11/11/2005 - 22:32 | Informe spam
Revisa este enlace, creo que te resultará muy útil.

http://www.microsoft.com/spanish/ms...eForms.asp

Está orientado a usuarios de VB.NET que vienen de VB, pero con mínimas
variaciones en la sintaxis todo es igual en C#.

El caso concreto que tu planteas yo lo resolvería abriendo form2 como modal
y definiendo una propiedad Public en Form2 con la que pasas la referencia a
la fila:


Donde instancies Form2 dentro de la clase Form1:

{
Form2 f = new Form2();

// Creo un clon del DataRow.
// Podría pasarlo directamente, pero clonarlo tiene ciertas ventajas.
// Tabla es un DataTable

DataRow fila = tabla.NewRow();
fila.ItemArray = tabla.Rows[indice].ItemArray;
f.Fila = fila;
f.ShowDialog();
tabla.Rows[indice].ItemArray = fila.ItemArray;
}


class Form2
{
...

private DataRow fila;
public DataRow Fila
{
set
{
fila = value;
this.textBox1.Text = fila["Campo1"]
...
}
}

private void button1_Click(object sender, System.EventArgs e)
{
fila["Campo1"] = this.textBox1.Text;
...
this.Close();
}
}

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#4 MM
15/11/2005 - 14:16 | Informe spam
Benton, entiendo la idea de lo que me dices pero no soy un usuario muy
experto y me atasco un poco, podrías por favor ser algo más explicito?
- "public partial class Form2: form NO ENTIENDO LO DE PARTIAL

- private DataSource dataSource;
- private DataGrid dataGrid;
NO SE SI SON VARIABLES, SI LO SON NO SE ESPECIFICA EL TIPO.
NO ENTIENDO DATASOURCE COMO OBJETO, AUNQUE SI DATAGRID.
EXACTAMENTE PIENSO QUE SE PONDRIA A CONTINUACION DE LA DECLARACION DE LA
CLASE DE FORMULARIO, ES ASI?

- public frmBusRegistros(DataSource dataSource, DataGrid dataGrid)
ES EL CONSTRUCTOR PERO EN FRM1 O FRM2?

- "y desde el form1, usar el form2" NO ES AL REVES?
Muchas gracias por tu atención, espero tu respuesta.




"Benton" escribió:

> Tengo un form, form1 con un DataGrid que lo abro y lleno su DataGrid.
> A continuacion abro un segundo formulario, form2 ... me gustaría
> refrescar el DataGrid del form1 antes o inmediatamente después de cerrar
> el
> form2.
> Cómo puedo referenciar desde fuera de form1 el dataSet, el dataGrid, etc
> para actualizarlo?

El la clase form2 declara objetos datasource y data grid, y en el
constructor les das un valor que vendrá desde form1:

public partial class Form2 : Form
{
private DataSource dataSource;
private DataGrid dataGrid;

public fmBusRegistros(DataSource dataSource, DataGrid dataGrid)

{

InitializeComponent();

this.dataSource = dataSource;
this.dataGrid = dataGrid;
}


y desde el form1, usas el form2 así:

Form2 fm2 = new Form2(miDatasource, miDatagrid);
fm2.Show();

De esa manera, en el form2 los objetos privados dataSource y dataGrid son
referencias ("apuntadores") a los objetos correspondientes en el form1, y
puedes trabajarlos desde allí.

Saludos,

-Benton



Respuesta Responder a este mensaje
#5 MM
16/11/2005 - 13:15 | Informe spam
José Miguel, estoy intentando lo que me dices, me parece correcto. He puesto
otra pregunta en el grupo, además de contestarte, ahora me ocurre que desde
form2 no reconoce una función hecha en form1:
En form1 --> public function1( )
{codigo
}
En form2 --> form1.function1( )
- No reconoce la función, aunque es pública, no la reconoce la
clase del form2.
Sabrías por donde tirar?
Un saludo y gracias.



"José Miguel Torres" escribió:

Hola,

Prodrías implementar una función o procedimiento estático en Form1 que
refrescara el DataGrid, y llamarlo desde Form2 así
Form1.funcionRefrescar();, esta podría ser una solución...

saludos


José Miguel Torres
jtorres_diaz~~ARROBA~~terra.es
http://jmtorres.blogspot.com

"MM" escribió en el mensaje
news:
> Hola Grupo:
> Tengo un form, form1 con un DataGrid que lo abro y lleno su DataGrid con:
> dataSet11.Clear
> odbcDataAdapter.Fill(dataSet11)
> dataGrid1.SetDataBinding (dataSet11."tabla1")
> A continuacion abro un segundo formulario, form2, con un registro
> seleccionado desde el dataGrid del form1, modifico el registro y me
> gustaría
> refrescar el DataGrid del form1 antes o inmediatamente después de cerrar
> el
> form2.
> Cómo puedo referenciar desde fuera de form1 el dataSet, el dataGrid, etc
> para actualizarlo?. Un saludo y gracias.



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