Sin error ninguno con TextBox y error con ListBox
Publicado por javier234 (5 intervenciones) el 06/02/2011 12:44:46
Hola a todos,
He creado dos proyectos exactamente iguales en Visual Basic 2008, uno que utiliza un TextBox para esvribir lo leido de un archivo y otro que utiliza un ListBox en vez del TextBox.
El codigo fuente es exactamente el mismo tanto en uno como en otro.Lo unico que cambia es la linea donde escribo al TextBox o al ListBox, y sin embargo en el proyecto del ListBox, me da el famoso error
----------------------------------------------------
Error 1 Option Strict On no permite restricciones del tipo 'System.ValueType' al tipo 'WriteListBoxDatosAr chivoRandom.Form1.R egistroParametros' al copiar de nuevo el valor del parámetro 'ByRef' 'Value' en el argumento correspondiente. T:\Documents and Settings\xxxxxx\Mis documentos\Visual Studio 2008\Projects\WriteListBoxDatosArchivoRandom\Form1.vb 40 24 WriteListBoxDatosArchivoRandom
-----------------------------------------------------
cosa que en el de TextBox no da ningun error ni antes de la compilacion ni despues de ella.
Este es el codigo que da error antes de compilar en lo que esta en negrita
___________________ ___________________ _________________
Public Class Form1
Public Structure RegistroParametros
<VBFixedString(16)> Public Nombre_Parametro As String
Public Valor_Parametro As Single
End Structure
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ContenidoRegistroParametros As RegistroParametros
ContenidoRegistroPa rametros.Nombre_Parametro = " "
ContenidoRegistroPa rametros.Valor_Parametro = 0
FileOpen(1, "T:\Parametros.dat", OpenMode.Random, OpenAccess.ReadWrit e, OpenShare.Shared, Len(ContenidoRegistroParametros))
Dim i As Integer
Dim c As Char
For i = 1 To 64
c = CType(ChrW(i + 48), Char)
ContenidoRegistroParametros.Nombre_Parametro = c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c
ContenidoRegistroParametros.Valor_Para metro = CType(i, Single)
FilePut(1, ContenidoRegistroParametros, i)
Next
MessageBox.Show("Se creo el archivo")
For i = 1 To 16
FileGet(1, ContenidoRegistroParametros, i) <----En esta linea y en ContenidoRegistroParametros es donde da el error
ListBox1.Items.Add(ContenidoRegistroParametros.Nombre_Par ametro & "-" & ContenidoRegistroParametros.Valor_Para metro.ToString & ControlChars.CrLf)
Next
FileClose(1)
End Sub
End Class
-------------------------------------------------------------------------------
La linea que cambia en el proyecto del TextBox es la de ListBox.Items.Add(...) por esta otra
TextBox1.AppendText(ContenidoRegistroParametros.Nombre_Parametro & "-" & ContenidoRegistroParametros.Valor_Parametro.ToString & ControlChars.CrLf)
Alguien entiende que en el proyecto TextBox no de error alguno y si lo de en el proyecto de ListBox y ENCIMA en la linea de lectura del archivo Huh
Cualquier ayuda sera bienvenida
Gracias anticipadas y saludos
He creado dos proyectos exactamente iguales en Visual Basic 2008, uno que utiliza un TextBox para esvribir lo leido de un archivo y otro que utiliza un ListBox en vez del TextBox.
El codigo fuente es exactamente el mismo tanto en uno como en otro.Lo unico que cambia es la linea donde escribo al TextBox o al ListBox, y sin embargo en el proyecto del ListBox, me da el famoso error
----------------------------------------------------
Error 1 Option Strict On no permite restricciones del tipo 'System.ValueType' al tipo 'WriteListBoxDatosAr chivoRandom.Form1.R egistroParametros' al copiar de nuevo el valor del parámetro 'ByRef' 'Value' en el argumento correspondiente. T:\Documents and Settings\xxxxxx\Mis documentos\Visual Studio 2008\Projects\WriteListBoxDatosArchivoRandom\Form1.vb 40 24 WriteListBoxDatosArchivoRandom
-----------------------------------------------------
cosa que en el de TextBox no da ningun error ni antes de la compilacion ni despues de ella.
Este es el codigo que da error antes de compilar en lo que esta en negrita
___________________ ___________________ _________________
Public Class Form1
Public Structure RegistroParametros
<VBFixedString(16)> Public Nombre_Parametro As String
Public Valor_Parametro As Single
End Structure
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ContenidoRegistroParametros As RegistroParametros
ContenidoRegistroPa rametros.Nombre_Parametro = " "
ContenidoRegistroPa rametros.Valor_Parametro = 0
FileOpen(1, "T:\Parametros.dat", OpenMode.Random, OpenAccess.ReadWrit e, OpenShare.Shared, Len(ContenidoRegistroParametros))
Dim i As Integer
Dim c As Char
For i = 1 To 64
c = CType(ChrW(i + 48), Char)
ContenidoRegistroParametros.Nombre_Parametro = c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c
ContenidoRegistroParametros.Valor_Para metro = CType(i, Single)
FilePut(1, ContenidoRegistroParametros, i)
Next
MessageBox.Show("Se creo el archivo")
For i = 1 To 16
FileGet(1, ContenidoRegistroParametros, i) <----En esta linea y en ContenidoRegistroParametros es donde da el error
ListBox1.Items.Add(ContenidoRegistroParametros.Nombre_Par ametro & "-" & ContenidoRegistroParametros.Valor_Para metro.ToString & ControlChars.CrLf)
Next
FileClose(1)
End Sub
End Class
-------------------------------------------------------------------------------
La linea que cambia en el proyecto del TextBox es la de ListBox.Items.Add(...) por esta otra
TextBox1.AppendText(ContenidoRegistroParametros.Nombre_Parametro & "-" & ContenidoRegistroParametros.Valor_Parametro.ToString & ControlChars.CrLf)
Alguien entiende que en el proyecto TextBox no de error alguno y si lo de en el proyecto de ListBox y ENCIMA en la linea de lectura del archivo Huh
Cualquier ayuda sera bienvenida
Gracias anticipadas y saludos
Valora esta pregunta


0