• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 258
  • Last Modified:

VB.net Can't use a variable anywhere else in the project

Hi. Below is the code that has the variable TpSqlEditCustomTaskPane at the top that I am trying to call from any other part of the project but can't seem to.

Thanks



Public Class ThisAddIn


    Private _tpSqlEdit As TpSQLEdit
    Public TpSqlEditCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane
    Private oUserControl1 As UserControl1
    Public oRightTaskPane As Microsoft.Office.Tools.CustomTaskPane

    Private Sub ThisAddIn_Startup() Handles Me.Startup
        'Fire the Custom TaskPane
        AddTpSqlEdit()
        AddSideTaskPane()
    End Sub

    Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown

    End Sub

    'Create the Custom TaskPane and Dock Bottom
    'You must Add your Control here
    Private Sub AddTpSqlEdit()
        _tpSqlEdit = New TpSqlEdit()
        TpSqlEditCustomTaskPane = CustomTaskPanes.Add(_tpSqlEdit, "SELECT Elements")
        TpSqlEditCustomTaskPane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionBottom
        'Show TaskPane
        TpSqlEditCustomTaskPane.Visible = True
    End Sub

    Private Sub AddSideTaskPane()
        oUserControl1 = New UserControl1
        oRightTaskPane = CustomTaskPanes.Add(oUserControl1, "FROM Elements")
        oRightTaskPane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight
        'Show TaskPane
        oRightTaskPane.Visible = True
    End Sub




End Class
0
Murray Brown
Asked:
Murray Brown
2 Solutions
 
käµfm³d 👽Commented:
You have made "TpSqlEditCustomTaskPane" an instance variable, which means you won't have access to that member anywhere outside of this class without having a valid instance of the class ThisAddIn. In other words, if I had this function:

Function SomeFunctionOutsideOfThisAddIn

End Function

Open in new window


...I cannot do this:

Function SomeFunctionOutsideOfThisAddIn
    Dim x = TpSqlEditCustomTaskPane
End Function

Open in new window


...but I can do this:

Function SomeFunctionOutsideOfThisAddIn
    Dim c As New ThisAddIn()
    Dim x = c.TpSqlEditCustomTaskPane
End Function

Open in new window

0
 
gpizzutoCommented:
RIGHT: you declared an instance variable.
If you want the variable to be visible outside (without instancing the class)
you can also declare the variable as SHARED: All instances of the class will share THE SAME VARIABLE
0
 
Murray BrownMicrosoft Cloud Azure/Excel Solution DeveloperAuthor Commented:
Thanks very much
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Introducing Cloud Class® training courses

Tech changes fast. You can learn faster. That’s why we’re bringing professional training courses to Experts Exchange. With a subscription, you can access all the Cloud Class® courses to expand your education, prep for certifications, and get top-notch instructions.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now