![]() |
Pasar Datos Entre Formularios Hola, voy a intentar explicar mi problema. Para que os situeis: parto de una aplicación que recoge una serie de datos introducidos por el usuario. La aplicación está en Visual C#. Una vez terminada me la pasaron a mi para realizar la segunda parte, que es generar un informe a partir de todos esos datos. En una de las pestañas hay un botón, que al darle pues generara el informe. Yo estoy programando ese botón. Además tengo que coger información externa al programa que proviene de un excel. Para asegurarme de que por lo que sea este excel no este o surja algún problema quiero mostrar un segundo formulario donde puedan meter esa información externa a mano. A través de un bloque try,cath controlo la excepción que produciría si no encontrase el archivo excell, es decir que conecto con un segundo formulario y al introducir los datos vuelvo a conectar al formulario principal para que el programa siga su curso. Mi problema es que una vez pasa al segundo formulario siguen sucediéndose todas las demás instrucciones cuando lo que yo quiero es que pare , vaya al segundo formulario y vuelva a ese mismo punto. Lo siento sino me he explicado muy bien es que es complicado para mi decirlo con palabras ya que no soy una experta en este tema. Creo que tiene que ver que todo lo hago dentro del mismo evento Button_Click pero es que tengo que hacerlo asi por motivos ajenos a mi. Podríais ayudarme???????? Graciassssssssss por adelantado!!!!!!!!!!!!!!!!!!!! Un saludo |
Re: Pasar Datos Entre Formularios puedes poner tu codigo?? |
Re: Pasar Datos Entre Formularios Cita:
esta es tu respuesta, http://msmvps.com/blogs/otelis/archi...-globales.aspx nos vemos. |
Re: Pasar Datos Entre Formularios Cita:
Hola, aqui lo tienes. He marcado donde esta el problema con el que me encuentro. Mil gracias por responder!! private void button116_Click(object sender, EventArgs e) { //*****************************************ANEXOA*** ************************************************** ********************* //-------------------ABRE WORD Y HACE COPIA PLANTILLA ANEXO Word._Document doc; Word.Application ApWord = new Word.Application(); //copio la plantilla original string path_plantilla = @"C:\Documents and Settings\emc\Desktop\Ana\Plantillas provisionales informes\Anexo A - informe europeo PRUEBA.doc"; string path_copia = @"C:\Documents and Settings\emc\Desktop\Ana\Plantillas provisionales informes\AnexoACopia2.doc"; //string path_prueba = @"C:\Documents and Settings\emc\Desktop\Ana\Plantillas provisionales informes\PruebaAnexo-A.doc"; File.Copy(path_plantilla, path_copia, true); MessageBox.Show("Copia plantilla ok"); Object oMising = System.Reflection.Missing.Value; //creo objeto de la clse Anexo A AnexoA objAnexoA = new AnexoA(); //----------------------------ABRIR FICHERO EXCELL CON //tendre que controlar si el fichero no existe string rutaExcel; openFileDialog2.Title = "Seleccionar el archivo de muestras"; openFileDialog2.Filter = "Archivos xls|*.xls"; ArrayList ALMuestras = new ArrayList(); if (openFileDialog2.ShowDialog() == DialogResult.OK) { rutaExcel = openFileDialog2.FileName; MessageBox.Show("La ruta es: " + rutaExcel); //****Importa excel e inserta los datos en un array****\\ ALMuestras = objAnexoA.ImportaExcel(); MessageBox.Show("Importa Excell ok"); } //----------------------------INSERTA TABLA MUESTRAS---------------------------------------------------------------------------- object param = path_copia; //Abro Word doc = objAnexoA.AbrirWord(param, oMising, ApWord); Word.Range rng,rango; Word.Table TablaMuestras,TablaContenedor,TablaElemPrinc; Word.Table TablaAux; //En el listBox1 estan todos los datos de la muestra, cada 7 lineas hay otra muestra int lon = this.listBox1.Items.Count; //Divido entre 7 para saber cuantas muestras hay en el listbox int numeroM = lon / 7; //extraemos el rango de la primera tabla que se tiene que insertar int filaEliminar = 0;//contador que lleva el número de filas de la tabla contendor string nombre = "Muestra"; rng = objAnexoA.BuscarRango(nombre, doc); //**Inserto tabla contenedor**\\ //Esta tabla contendra todas las tablas que nesesita una muestra , porcada muestra necesitaremos 10 filas de la tabla contenedor TablaContenedor = objAnexoA.InsertarTablaContenedor(numeroM*10, doc, rng, oMising); //contador del listbox, cada 7 lineas hay una nuev muestra contAnexoA = 0; //**Copia del rango inicial**\\ rango = rng; rango.Select(); //Muevo rango primera fila en una unidad de fila object count = 1; object unit = Word.WdUnits.wdRow; rango.Move(ref unit, ref count); //****Importa excel e inserta los datos en un array****\\ ArrayList ALMuestras = new ArrayList(); //RellenarExcel(ref ALMuestras); //Tengo que hacer un delegado o un evento!!!!! try //AQUI ESTA EL PROBLEMA { AMuestras = objAnexoA.ImportaExcel();//EL ARCHIVO EXCELL QUE IMPORTO PUEDE DAR PROBLEMAS MessageBox.Show("Importa Excell ok"); } catch { ConectarForm3();//CON ESTO QUIERO CONECTAR A OTRO FORMULARIO DONDE QUIERO RECOGER DATOS this.Hide(); F3.Show(); AMuestras = F3.AMuestrasOrigen;//AQUI SE RECOGEN LOS DATOS QUE VIENEN DEL OTRO FORMULARIO MessageBox.Show("Importa Excell ok"); MessageBox.Show("ERROR CON EL EXCELL"); } |
Re: Pasar Datos Entre Formularios Porq no haces if(F3.ShowDialog()==DialogResult.Ok) { AMuestras=F3.AMuestrasOrigen; MsgBx.... } asi garantizas hasta q lo cierren o den click en ok o cancelar en ese formulario q se continue con la siguiente instrucción |
Respuesta: Re: Pasar Datos Entre Formularios Cita:
Hola PeterPay!! Muchas gracias por tu respuesta , he estado probando y creo que me va a servir. Pero tengo una gran duda sobre como se usan los cuadros de diálogo. Lo que hace el if es que abre el formulario como si fuese un cuadro de diálogo y el valor devuelto por ese cuadro es ok cuando?? y en que lugar lo especifico en el otro formulario para que asi entre en el if y pueda pasar los datos que necesito???? Es que en ese tema estoy un poco verde y he buscado información pero no esta muy clara. Graciassss de nuevo |
Respuesta: Re: Pasar Datos Entre Formularios Cita:
Gracias y un saludo |
| La zona horaria es GMT -6. Ahora son las 21:33. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.