User Interface for .NET Add-Ins?

  • Thread starter Thread starter Jim M
  • Start date Start date
J

Jim M

I created an addin using VB.Net. I added a windows form to the addin, but I
can not figure out how to have the form open up in the addin.

Is this possible. I only see a file frmMain.vb in the dev environmnet. I
was surprised not to see a frmMain.frm?

How can I have a form as part of an Add-In?

Thanks in advance.
 
Thanks for the help. There is not much code, I can not seem to get past
square one. I guess I just want a form to open as the default user
interface when the button is clicked.

Jim


Private Sub MyButton_Click(ByVal Ctrl As
Microsoft.Office.Core.CommandBarButton, ByRef CancelDefault As Boolean)
Handles MyButton.Click

MsgBox("Our CommandBar button was pressed!")

HERE IS WHERE I WANT TO DISPLAY A FORM. I HAVE A FORM IN MY PROJECT (VISUAL
STUDIO .NET), BUT I DO NOT KNOW HOW TO GET IT TO DISPLAY ON THE BUTTON
CLICK.

I TRIED

frmMain.show vbModal

BUT IT DID NTO WORK.

End Sub


Imports Microsoft.Office.Core

imports Extensibility

imports System.Runtime.InteropServices



#Region " Read me for Add-in installation and setup information. "

' When run, the Add-in wizard prepared the registry for the Add-in.

' At a later time, if the Add-in becomes unavailable for reasons such as:

' 1) You moved this project to a computer other than which is was originally
created on.

' 2) You chose 'Yes' when presented with a message asking if you wish to
remove the Add-in.

' 3) Registry corruption.

' you will need to re-register the Add-in by building the MyCommAddinSetup
project

' by right clicking the project in the Solution Explorer, then choosing
install.

#End Region

<GuidAttribute("09C5278D-7B1A-4E15-9F5C-B022E42CE8AF"),
ProgIdAttribute("MyCommAddin.Connect")> _

Public Class Connect





Implements Extensibility.IDTExtensibility2

Dim applicationObject As Object

Dim addInInstance As Object

Dim WithEvents MyButton As CommandBarButton

'(Global Declarations)







Public Sub OnBeginShutdown(ByRef custom As System.Array) Implements
Extensibility.IDTExtensibility2.OnBeginShutdown

On Error Resume Next

' Notify the user you are shutting down, and delete the button.

MsgBox("Our custom Add-in is unloading.")

MyButton.Delete()

MyButton = Nothing

End Sub

Public Sub OnAddInsUpdate(ByRef custom As System.Array) Implements Extensibi
lity.IDTExtensibility2.OnAddInsUpdate

End Sub

Public Sub OnStartupComplete(ByRef custom As System.Array) Implements
Extensibility.IDTExtensibility2.OnStartupComplete

Dim oCommandBars As CommandBars

Dim oStandardBar As CommandBar

On Error Resume Next

' Set up a custom button on the "Standard" command bar.

oCommandBars = applicationObject.CommandBars

If oCommandBars Is Nothing Then

' Outlook has the CommandBars collection on the Explorer object.

oCommandBars = applicationObject.ActiveExplorer.CommandBars

End If

oStandardBar = oCommandBars.Item("Standard")

If oStandardBar Is Nothing Then

' Access names its main toolbar Database.

oStandardBar = oCommandBars.Item("Database")

End If

' In case the button was not deleted, use the exiting one.

MyButton = oStandardBar.Controls.Item("My Custom Button")

If MyButton Is Nothing Then

MyButton = oStandardBar.Controls.Add(1)

With MyButton

..Caption = "My Custom Button"

..Style = MsoButtonStyle.msoButtonCaption

' The following items are optional, but recommended.

' The Tag property lets you quickly find the control

' and helps MSO keep track of it when more than

' one application window is visible. The property is required

' by some Office applications and should be provided.

..Tag = "My Custom Button"

' The OnAction property is optional but recommended.

' It should be set to the ProgID of the add-in, so that if

' the add-in is not loaded when a user clicks the button,

' MSO loads the add-in automatically and then raises

' the Click event for the add-in to handle.

..OnAction = "!<MyCOMAddin.Connect>"

..Visible = True

End With

End If

' Display a simple message to show which application you started in.

MsgBox("Started in " & applicationObject.Name & ".")



oStandardBar = Nothing

oCommandBars = Nothing

'frmLogin.



End Sub

Public Sub OnDisconnection(ByVal RemoveMode As
Extensibility.ext_DisconnectMode, ByRef custom As System.Array) Implements
Extensibility.IDTExtensibility2.OnDisconnection

On Error Resume Next

If RemoveMode <> Extensibility.ext_DisconnectMode.ext_dm_HostShutdown Then _

Call OnBeginShutdown(custom)

applicationObject = Nothing







End Sub

Public Sub OnConnection(ByVal application As Object, ByVal connectMode As
Extensibility.ext_ConnectMode, ByVal addInInst As Object, ByRef custom As
System.Array) Implements Extensibility.IDTExtensibility2.OnConnection

MsgBox("On Connection In MyAddin")

applicationObject = application

addInInstance = addInInst



' If you aren't in startup, manually call OnStartupComplete.

If (connectMode <> Extensibility.ext_ConnectMode.ext_cm_Startup) Then _

Call OnStartupComplete(custom)



End Sub
 
Jim,

In .NET all windows (forms) are classes, so what you need to do is to
create a variable of the type your window class is and create the object.
Once you have the object you can call the show-method on it.

HTH,

//Andreas
 
Thanks. I will try it. Any clue to the syntax for creating a variable for
standard window class?
 
Back
Top