al querer arrancar el programa da un error si uso un módulo para poner parte del código, pero no da problemas si hago todo el código en el form

tema enviado por freidora100 en Visual Basic .NET
tema iniciado el 11/12/2015
Hola. El sistema operativo que uso es el Windows 7 Professional y el programa está hecho en Visual Studio 2010, en Visual Basic. EL programa contiene un form y un módulo. En el form pongo dos potenciometros hechos con VscrollBar y unos círculos y líneas hechos con OvalShape y LineShape. Se quiere que, al ejecutar el programa, unos círculos y líneas se muestren o se oculten al variar el valor de los potenciómetros,(aplicando unas ecuaciones sencillas ). Si el código lo hago todo en el form, sin usar el módulo, el programa va bien, pero si uso el módulo para poner parte del código y hacer una llamada a él desde el form, el programa falla poniendo el texto: Error al crear el formulario. Consulte Exception.InnerException para obtener más detalles. Error: El formulario se hacía referencia así mismo durante la construcción a partir de una instancia predeterminada, lo que provocó una situación de recursividad infinita. Dentro del constructor de Form haga referencia al formulario mediante 'Me'. Necesitaba saber por qué pasa esto y alguna sugerencia para solucionarlo. De antemano, muchas gracias. Hice una simplificación del programa, hasta sólo poner cuando da fallo.A continuación pongo el código. Declaro las siguientes variables en el Form: Public Class Form1 Dim A As String 'ya probé con otro tipo de variables Dim B As String ' " Dim C As String ' " Dim D As String ' " En el potenciómetro 1 pongo: Private Sub VScrollBar1_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Pot1.ValueChanged A = 125 - Pot1.Value 'el valor max. del potenciómetro1 es 250 y el mínimo 0 B = 125 - Pot2.Value ''el valor max. del potenciómetro2 es 125 y el mínimo 0 C = ((-B) + (A)) / 2 D = (A) - (C) If C < 0 And D > 0 Then Fun1() 'LineShape1.Visible = False 'esta línea y las demás que están con el apóstrofe, si las habilitamos, y deshabiliamos 'LineShape2.Visible = False 'Fun1(), el programa funciona. ' LineShape3.Visible = True 'OvalShape1.Visible = True 'OvalShape2.Visible = False 'OvalShape3.Visible = False End If En el potenciómetro 2 pongo: Private Sub Pot2_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Pot2.ValueChanged A = 125 - Pot1.Value 'el valor max. del potenciómetro1 es 250 y el mínimo 0.Está cetrado en 125 B = 125 - Pot2.Value ''el valor max. del potenciómetro2 es 125 y el mínimo 0. Está centrado en 62 C = ((-B) + (A)) / 2 D = (A) - (C) If C < 0 And D > 0 Then Fun1() 'LineShape1.Visible = False 'esta línea y las demás que están con el apóstrofe, si las habilitamos, y deshabiliamos 'LineShape2.Visible = False 'Fun1(), el programa funciona. 'LineShape3.Visible = True 'OvalShape1.Visible = True 'OvalShape2.Visible = False 'OvalShape3.Visible = False End If En el módulo pongo Module Module1 Public Sub Fun1() Form1.LineShape1.Visible = False Form1.LineShape2.Visible = False Form1.LineShape3.Visible = True Form1.OvalShape1.Visible = True Form1.OvalShape2.Visible = False Form1.OvalShape3.Visible = False End Sub End Module