AnsweredAssumed Answered

Loading Form with PDM Event

Question asked by Prabaharan Pichaiyan on Dec 11, 2018
Latest reply on Dec 11, 2018 by Simon Turner


I'm trying to load a form when checkout a file from vault.

And I tested with sample code as shown as below.


Imports EdmLib

Public Class Class1

Implements IEdmAddIn5

Public name As String

Public Sub GetAddInInfo(ByRef poInfo As EdmAddInInfo, poVault As IEdmVault5, poCmdMgr As IEdmCmdMgr5) Implements IEdmAddIn5.GetAddInInfo

'Specify add-in information
poInfo.mbsAddInName = "My first add-in"
poInfo.mbsCompany = "The name of my company"

poInfo.mbsDescription = "This is a very nice add-in."
poInfo.mlAddInVersion = 1

'Specify minimum version of SOLIDWORKS Enterprise PDM
poInfo.mlRequiredVersionMajor = 5
poInfo.mlRequiredVersionMinor = 2

'Notify when a file has been added

'Notify when a file has been checked out

'Notify when a file is about to be checked in

'Notify when a file has been checked in

End Sub

Public Sub OnCmd(ByRef poCmd As EdmCmd, ByRef ppoData As Array) Implements IEdmAddIn5.OnCmd

'Check the type of hook that triggered this call

Select Case poCmd.meCmdType
Case EdmCmdType.EdmCmd_PostAdd
name = "PostAdd"
Case EdmCmdType.EdmCmd_PostLock
name = "PostLock"

'Initiate the Form Here

Dim myform As New Form1

Case EdmCmdType.EdmCmd_PreUnlock
name = "PreUnlock"
Case EdmCmdType.EdmCmd_PostUnlock
name = "PostUnlock"
Case Else
name = "?"
End Select

'Check the upper and lower bounds of the array
Dim message As String
message = ""
Dim index As Long
index = LBound(ppoData)
Dim last As Long
last = UBound(ppoData)

'Append the paths of all files to a string
While index <= last
message = message + ppoData(index).mbsStrData1 + vbLf
index = index + 1
End While

'Display a message to the user
'message = "The following files were affected by a " + name + " hook:" + vbLf + message

Dim vault As EdmVault5
vault = poCmd.mpoVault
vault.MsgBox(poCmd.mlParentWnd, message)

End Sub
End Class



And I want to load the below form to get output value. In the text box I want to show up the results ("name").



Form Codes :


Public Class Form1

Dim callClass As New Class1

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
TextBox1.Text =
End Sub
End Class


its loading a form successfully. But once I click the button "Get Value" Nothing I get.


Could you please anyone help with this issue?.


Thanks a lot