Foros del Web » Programación para mayores de 30 ;) » .NET »

De Form a código

Estas en el tema de De Form a código en el foro de .NET en Foros del Web. Esta es complicada... Querría saber si hay alguna manera de grabar en un fichero (dll o de texto) el contenido de un formulario (sección diseñador, ...
  #1 (permalink)  
Antiguo 05/03/2010, 17:07
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 0
De Form a código

Esta es complicada...

Querría saber si hay alguna manera de grabar en un fichero (dll o de texto) el contenido de un formulario (sección diseñador, métodos, propiedades...todo)


Se que por reflection se puede cargar esa dll o txt pero no se por reflection se podrá crear tb... alguien?

Gracias
  #2 (permalink)  
Antiguo 06/03/2010, 12:00
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: De Form a código

puedes guardar la instancia serializada, una vez lo hice con soap, déjame buscar y te posteo luego

cabe resaltar que lo hice con una clase, no con un form, ya que la serializacion puede fallar con variables que apunten a recursos, ya que estos no pueden deserializarse nuevamente si la instancia de a aplicación es liberada, y por ende los mismo recursos
  #3 (permalink)  
Antiguo 06/03/2010, 18:23
 
Fecha de Ingreso: septiembre-2007
Ubicación: Barcelona
Mensajes: 227
Antigüedad: 16 años, 7 meses
Puntos: 12
Respuesta: De Form a código

como ha dicho maycolalvarez, puedes serializar el class en un archivo binario. No necesitas reflection.
  #4 (permalink)  
Antiguo 07/03/2010, 13:07
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: De Form a código

No se puede serializar System.Windows.Forms
Supongo q la única manera es crear una dll de este form (cosa q no se hacer) y recueparala después por reflection (esto si se)

Última edición por chascos69; 07/03/2010 a las 13:20
  #5 (permalink)  
Antiguo 07/03/2010, 13:45
 
Fecha de Ingreso: septiembre-2007
Ubicación: Barcelona
Mensajes: 227
Antigüedad: 16 años, 7 meses
Puntos: 12
Respuesta: De Form a código

tienes razon, pero lo normal tampoco seria serializar el form en si. Supongo que guardas su contentido en un class y eso si puedes serializar.
Creo que seria mejor si explicas como creas el forum y para que necesitas guardar su contenido en un dll.
  #6 (permalink)  
Antiguo 07/03/2010, 17:05
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: De Form a código

Bien, lo intento resumir
Quiero presentar varias propuestas de formularios al usuario y que el tenga opcion de guardarlos y recuperarlos... eso solo lo puedo hacer generando un *.vb (o bin o dll) con un botón de guardar

Así que como se genera un vb(este ideal) o dll de un form?
Gracias
  #7 (permalink)  
Antiguo 07/03/2010, 17:26
 
Fecha de Ingreso: septiembre-2007
Ubicación: Barcelona
Mensajes: 227
Antigüedad: 16 años, 7 meses
Puntos: 12
Respuesta: De Form a código

como generas los formularios que propones al usuario?
  #8 (permalink)  
Antiguo 08/03/2010, 03:10
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: De Form a código

En tiempo de ejecución... new form
Y tb se le añade controles en tiempo de ejecución
  #9 (permalink)  
Antiguo 08/03/2010, 03:59
 
Fecha de Ingreso: septiembre-2007
Ubicación: Barcelona
Mensajes: 227
Antigüedad: 16 años, 7 meses
Puntos: 12
Respuesta: De Form a código

y porque no reutilizes ese codigo para cargar el form seleccionado por el usuario? Esto ademas te permitira actualizar tu codigo en una version futura y actualizar de forma transparente la configuracion del usuario.
  #10 (permalink)  
Antiguo 08/03/2010, 05:08
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: De Form a código

... ???
No entiendo.. si el user añade un combobox y un textbox por ejemploo
Yo quiero guardar ese form con el combo y el text

Ejemplo:
private sub me.load
dim n as new form
dim d as combobox
dim f as textbox
n.controls.add(d)
n.controls.add(f)
end sub

private sub btnGuardar.click
'Aquí hiría la opción de guardar
end sub

private sub btnCargar.click
'Aquí hiría la opción de cargra por refelction (esta ya se)
end sub
  #11 (permalink)  
Antiguo 08/03/2010, 07:15
 
Fecha de Ingreso: septiembre-2007
Ubicación: Barcelona
Mensajes: 227
Antigüedad: 16 años, 7 meses
Puntos: 12
Respuesta: De Form a código

deberias usar un array o una lista que contiene todos los objectos que añade el usuario y su propiedades. Cuando guardas, guardas (serializas?) ese array/list en un archivo del formato que mas te gusta (lo mas logico seria binario o xml).
Para cargar el archivo, conviertes los datos otra vez a un array/list y añades todos los objectos a un form nuevo.

El uso de un array/list es opcional, pero es la forma mas limpia de obtener el contenido del form.
  #12 (permalink)  
Antiguo 08/03/2010, 15:36
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: De Form a código

Cita:
Querría saber si hay alguna manera de grabar en un fichero (dll o de texto) el contenido de un formulario (sección diseñador, métodos, propiedades...todo)
Y cual es la finalidad o que es lo que pretendes?, tu idea es que si logras eso quisieras cargar de forma dinámica ese form?

Si es así, te recomiendo que trabajes con los Smart Client Software Factories

Saludost
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #13 (permalink)  
Antiguo 09/03/2010, 02:37
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: De Form a código

Solo se puede usar serializable para guardar una clase? No se puede generar un archivo de texto o una dll? .. q raro

Etiquetas: formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:37.