2 Problemas (1. DataGridView y 2. al instanciar un formulario)

21/02/2007 - 23:25 por Cesar_ | Informe spam
Hola a todos, utilizo Visual Basic con VS2005

1. Tengo un problema con el DataGridView:

En VS2003 teniamos DataGridTableStyle (que en VS2005 tambien existe)
pero en VS2003 le asignaba a mi datagrid este DataGridTableStyle(Dtts)
de la siguiente manera:

Datagrid.TableStyle.Add(dtts)

En VS2003 funciona asi, pero en VS2005 no funciona, ya que me subraya
el TableStyle,
ya que menciona que TableStyle no es miembro de
System.Windows.Forms.DataGridView

La pregunta seria como hago para asignar este DataGridTableStyle y que
recomendaciones tendria q tener??

Lo que quiero hacer con este DataGridView (que se carga por un
DataSet) es asignarles un ancho respectivo a cada columna y color
aleatorio en las filas si tienes una mejor sugerencia, excelente!!

Te comento que con VS2003 si queria refrescar la grilla teniendo un
segundo formulario q ejecute la accion de refrescar, se generaba un
error de excepcion, pero bueno quiero llegar ahi, y si sucede igual
con VS2005 te lo hare saber.


2. Problemas al instanciar un formulario

Tengo un primerformulario y un boton, al presionar el boton, me habre
a un segundoformulario, pero cada vez q presiono el boton se habre un
nuevo formulario, sin importarle q ya existe uno abierto, bien eso lo
entiendo ya que todos los formularios son tomados como objetos.

Entonces creo un procedimiento GetInstance, en el segundoFormulario de
la siguiente manera
VS2005:
Public Shared ChildForm as frmsegundoFormulario

Public Shared Function GetInstance() as frmSegundoFormulario
If ChildForm is Nothing then
ChildForm = new frmSegundoFormulario
End If
Return ChildForm
End Function

Hasta aqui todo bien.

En Vs2003 colocaba ChildForm = Nothing en el Evento dispose que se
encuentra en la REGION : "Windows form Designer generated code":

VS2003:
#Region "Windows form Designer generated code"
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
childForm = Nothing 'AQUI COLOCABA EL ChildForm = nothing
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

Esto en VS2003 trabaja muy bien, cada vez q presionaba el boton del
primerFormulario para abrir el segundoFormulario lo creaba si este no
existia, y si existia no mostraba otro, sino el que estaba activo.

El problema es que en VS2005 he creado el codigo de la funcion
GetIntance (arriba), pero no se donde colocar el ChildForm = nothing,
ya que
En VS2005 no tengo esta REGION : "Windows form Designer generated
code" y pues,
En la primera vez q ejecuto mi proyecto, al dar click, se abre el
segundoFormulario pero cada vez q cierro el segundoformulario y luego
al darle click en boton del primerFormulario para abrir el
segundoformulario, me sale el siguiente error:

No se controlo ObjectDisposeException
No se puede tener acceso a un objeto eliminado

Creo q la solucion es colocar el ChildForm = Nothing, cuando se cierre
el formulario, pero el problema es que NO SE DONDE!!!

Agradescos sus valiosas respuestas,
Saludos,

CESAR_

Preguntas similare

Leer las respuestas

#1 SystemBuilder
22/02/2007 - 00:23 | Informe spam
Puedo responderte el primer problema:

para trabjar las columnas del datagridview lo haces de la siguiente
forma:

Dataridview1.DefaultCellStyle.ApplyStyle(MyStyle)


Respecto al segundo, odio trabajar con formchild

Saludos.

SystemBuilder
Lima - Peru
Respuesta Responder a este mensaje
#2 Miguel Puime
24/02/2007 - 18:05 | Informe spam
Hola,
Una pregunta, en que parte del código declaras:
Public Shared ChildForm as frmsegundoFormulario

Creo que no voy a poder responderte a tu pregunta pero me interesa mucho
este tema.

Un saludo.
Miguel Puime.



"Cesar_" escribió en el mensaje
news:
Hola a todos, utilizo Visual Basic con VS2005

1. Tengo un problema con el DataGridView:

En VS2003 teniamos DataGridTableStyle (que en VS2005 tambien existe)
pero en VS2003 le asignaba a mi datagrid este DataGridTableStyle(Dtts)
de la siguiente manera:

Datagrid.TableStyle.Add(dtts)

En VS2003 funciona asi, pero en VS2005 no funciona, ya que me subraya
el TableStyle,
ya que menciona que TableStyle no es miembro de
System.Windows.Forms.DataGridView

La pregunta seria como hago para asignar este DataGridTableStyle y que
recomendaciones tendria q tener??

Lo que quiero hacer con este DataGridView (que se carga por un
DataSet) es asignarles un ancho respectivo a cada columna y color
aleatorio en las filas si tienes una mejor sugerencia, excelente!!

Te comento que con VS2003 si queria refrescar la grilla teniendo un
segundo formulario q ejecute la accion de refrescar, se generaba un
error de excepcion, pero bueno quiero llegar ahi, y si sucede igual
con VS2005 te lo hare saber.


2. Problemas al instanciar un formulario

Tengo un primerformulario y un boton, al presionar el boton, me habre
a un segundoformulario, pero cada vez q presiono el boton se habre un
nuevo formulario, sin importarle q ya existe uno abierto, bien eso lo
entiendo ya que todos los formularios son tomados como objetos.

Entonces creo un procedimiento GetInstance, en el segundoFormulario de
la siguiente manera
VS2005:
Public Shared ChildForm as frmsegundoFormulario

Public Shared Function GetInstance() as frmSegundoFormulario
If ChildForm is Nothing then
ChildForm = new frmSegundoFormulario
End If
Return ChildForm
End Function

Hasta aqui todo bien.

En Vs2003 colocaba ChildForm = Nothing en el Evento dispose que se
encuentra en la REGION : "Windows form Designer generated code":

VS2003:
#Region "Windows form Designer generated code"
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
childForm = Nothing 'AQUI COLOCABA EL ChildForm = nothing
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

Esto en VS2003 trabaja muy bien, cada vez q presionaba el boton del
primerFormulario para abrir el segundoFormulario lo creaba si este no
existia, y si existia no mostraba otro, sino el que estaba activo.

El problema es que en VS2005 he creado el codigo de la funcion
GetIntance (arriba), pero no se donde colocar el ChildForm = nothing,
ya que
En VS2005 no tengo esta REGION : "Windows form Designer generated
code" y pues,
En la primera vez q ejecuto mi proyecto, al dar click, se abre el
segundoFormulario pero cada vez q cierro el segundoformulario y luego
al darle click en boton del primerFormulario para abrir el
segundoformulario, me sale el siguiente error:

No se controlo ObjectDisposeException
No se puede tener acceso a un objeto eliminado

Creo q la solucion es colocar el ChildForm = Nothing, cuando se cierre
el formulario, pero el problema es que NO SE DONDE!!!

Agradescos sus valiosas respuestas,
Saludos,

CESAR_

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