none
Manejo de objetos RRS feed

  • Pregunta

  • Buen día, espero que me puedan ayudar, tengo dos clases, una es la clase MainWindow de mi ventana principal, y tengo una segunda llamada EMPRESA_1 que pertenece a otra ventana, en MainWindow manejo un objeto de Excel de la siguiente manera:

    Public Class MainWindow
        Dim actual As Integer
        Dim WithEvents aplica As Excel.Application
        Dim libro As Excel.Workbook

    Pero quiero utilizar los objetos "aplica" y "libro" en mi otra clase con las mismas propiedades que le di en MainWindow, se me ocurre que podría ser heredada de alguna manera, la cuestión es que no se como hacerlo, espero que me puedan ayudar y que me haya dado a entender, de antemano gracias.

    jueves, 22 de enero de 2015 17:59

Respuestas

  • Para que tu clase Empresa_1 pueda acceder a las dos variables "aplica" y "libro" que se encuentran dentro de la clase MainWindow, se necesitan dos cosas: La primera es la más sencilla, simplemente cambia el Dim por Public en la declaración de aplica y libro. La segunda es un poco más complicada: es necesario hacerle llegar a la clase Empresa_1 una referencia a la instancia de MainWindow que contiene las variables que ya has inicializado.

    Para hacer esto último, lo mejor es que lo haga la parte del programa que inicializa ambas clases. Es decir, para usar el MainWindow en algún sitio de la aplicación tiene que existir un código como este:

    Dim frm as New MainWindow()
    frm.Show()

    En ese caso, guárdate la variable "frm", que es la instancia del formulario MainWindow.

    Alternativamente, si MainWindow es el formulario de arranque y por tanto no tienes visible el código que lo crea, otra alternativa es usar el "Me" dentro del propio MainWindow:

    Dim frm as MainWindow = Me

    En cualquiera de los dos casos, esa variable que yo he llamado frm tienes que hacérsela llegar a la clase Empresa_1, bien sea declarándola como variable global en un módulo, pasándosela a través de una propiedad, o mejor todavía pasándosela como argumento en el constructor.

    Una vez que Empresa_1 disponga de una copia de la variable frm, puedes usar los datos que querías llamándolos frm.aplica y frm.libro.

    viernes, 23 de enero de 2015 7:54