Cómo se convierte de Vb6 a VB.Net el paso de un form como parámetro

06/07/2004 - 03:29 por Alfonso J | Informe spam
Hola grupo.
estoy intentando convertir un proyecto de Vb6 a VB.net
pero me he encontrado con el siguiente problema:
quiero pasar un formulario a un procedimiento donde voy a
realizar operaciones con varios controles del formulario.
En vb6 no tenía problema pero al convertirlo a .Net me
sale el siguiente error:
'UPGRADE_ISSUE: Control lblValor no se pudo resolver
porque está dentro del espacio de nombres genérico Form.
Haga clic aquí para obtener más información: 'ms-
help://MS.VSCC.2003/commoner/redir/redirect.htm?
keyword="vbup2072"'
en la ayuda me sale "CType
(MDIForm1.DefInstance.ActiveMDIChild, Form1).Label1.Text
= "Active""
pero no se resolver el problema. El procedimiento es
en VB6

Sub Cálculos(Frm As Form)
Frm.Total.txt=Frm.Valor*1.16
Frm).Iva.txt=Frm.Valor*0.16

end sub
Y la conversión es
Sub Cálculos(ByRef Frm As System.Windows.Forms.Form)
CType( Frm,???).Total.txt=Frm.Valor*1.16
CType( Frm,???).Iva.txt=Frm.Valor*0.16

end sub
Alquien sabe cómo solicionarlo
Un saludo
Alfons J

Sub Cálculos(ByRef Frm As System.Windows.Forms.Form)
Frm.Total.txt=Frm.Valor*1.16
Frm.Iva.txt=Frm.Valor*0.16

end sub
 

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
06/07/2004 - 06:18 | Informe spam
El problema es que la clase Form no tiene propiedades con nombre Total e Iva
sino que estar propiedades los tiene tu formulario. Lo que tienes que hacer
es declarar el parametro con el tipo de tu formulario. Por ejemplo, si tu
formulario se llama FormFactura:

Sub Cálculos(Frm As FormFactura)
Frm.Total.txt=Frm.Valor*1.16
Frm.Iva.txt=Frm.Valor*0.16
End Sub

Eso si, si Total e Iva son controles o variables globales asegurate de que
se puedan acceder desde fuera del formulario o mejor aun, crealas como
propiedades que accedan a los controles.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo

Preguntas similares