none
Error al ejecutar un subproceso RRS feed

  • Pregunta

  • Buenos días, expertos

    Tenía un proyecto desarrollado con vb net, que funcionaba perfectamente en Windows XP. Me he cambiado a Windows 7, he copiado el proyecto sin hacer ni una sola modificación, y hay un formulario que ha dejado de funcionar y me da el siguiente error: "Se tuvo acceso al control nombre de control desde un subproceso distinto a aquel en que lo creó". Esto sucede cuando lo llamo desde otro formulario de la manera que copia a continuación

            Dim Formu As New frmVisorPDF(True, dbDocu.Rows(0).Item("DocuPath").ToString, ElDocu, NumExpe, _

                                         CDate(dbDocu.Rows(0).Item("FechaDocu")))

            Formu.ShowDialog()

    La única “peculiaridad” del  formulario al que llamo, es que tiene agregado el componente “Adobe PDF Reader”.  En este formulario hay, además, un control “MenuStrip” y otro “OpenFileDialog”. Copio también el código de este formulario donde se detiene la ejecución del programa

        Public Sub New(ByVal Apertura As Boolean, ByVal Documento As String, ByVal DocuNum As Integer, _

                       ByVal ExpeNo As Integer, ByVal FechaDoc As Date)

            InitializeComponent()

            Mostrar = Apertura

            NoDocu = DocuNum

            NoExpe = ExpeNo

            NoFecha = FechaDoc

            NombrePDF = Documento

        End Sub

    Aunque, como ya he dicho, he copiado el proyecto sin modificar nada, he probado a eliminar completamente el formulario y a rehacerlo por completo, pero el error persiste y el programa de vb net es el mismo que tenía en el otro PC.

    Agradeceré vuestra ayuda.

    Saludos  
    • Cambiado Enrique M. Montejo miércoles, 14 de octubre de 2015 14:24 Pregunta relacionada con controles de Windows Forms.
    jueves, 8 de octubre de 2015 11:19

Todas las respuestas

  • Como no es seguro que un control se llame desde un subproceso que no sea el que lo haya generado porque se podría alterar su valor desde diferentes lugares provocando incongruencias varias.

    Aquí se explica un poco esto que te cuento.


    Saludos, Javier J

    jueves, 8 de octubre de 2015 12:33
  • Hola Javier,

    He estado mirando el enlace que me envías, y he visto que es muy similar a la ayuda que me ofrece vb cuando me da el error, y como no me ayudó a resolver el asunto, es por eso que decidí preguntar en el foro . En ambos casos tengo el mismo problema: no entiendo lo que me cuentan, y por lo tanto lo que debo hacer, tal vez porque además no tengo buenos conocimientos de VB net.

    Por otra parte, me dices que lo que estoy haciendo no es seguro, y esto aumenta aún más mi confusión, por estos motivos: uno, porque adopté esa manera de llamar a otro formulario pasándole parámetros porque en este mismo foro, o en otro, se decía que esa la manera correcta de hacerlo en vb net (creando un objeto formulario), para dejar atrás la forma en que se hacía en VB6; otro, porque es la primera vez que esa técnica me da problemas, y, como decía en mi pregunta, sólo me ha dado problemas al cambiar de sistema operativo, y sólo en ese formulario concreto.

    Si es posible, necesitaría una respuesta un poco más concreta para entender lo que esta ocurriendo y cómo solucionarlo.

    Gracias y saludos.

    jueves, 8 de octubre de 2015 15:33