暴雨前的宁静

博客园 首页 新随笔 联系 订阅 管理

今天做了个发送消息的例子。下面把代码贴出来大家探讨探讨。

设计一个类库,里面2个文件。Message.vb  ,Notify.vb

'Message.vb 代码

Namespace Notification
    Public Interface IPJMessage          '定义一个接口
        Function ToHTML() As String      '向接口中添加发送方法
        Function SubJect() As String     '添加
    End Interface
    Public Class Message

    End Class
    Public Class ThirdClass : Implements IPJMessage

        Public Function SubJect() As String Implements IPJMessage.SubJect
            SubJect = "Send"     '函数返回一个Send字符串
        End Function

        Public Function ToHTML() As String Implements IPJMessage.ToHTML
            ToHTML = "下午好!"   '函数返回一个下午好字符串
        End Function
    End Class
End Namespace
'Notify.vb代码

Imports EdmLib
Namespace Notification
    
    Public Class Notification
        Dim duser As IEdmUser7
        Public Sub New(ByVal user As IEdmUser7)
            duser = user         '把传入的用户赋值给IEdmUser7
        End Sub
        ''' <summary>
        ''' 发送消息
        ''' </summary>
        ''' <param name="context">IPJMessage实例</param>
        ''' <remarks></remarks>
        Public Sub SendMessage(ByVal context As IPJMessage)
            duser.SendMsg(context.SubJect(), context.ToHTML()) '调用duser的SendMsg方法
        End Sub
    End Class
End Namespace


类库中的文件编译成dll 导入到应用程序中。添加一个窗体,窗体上添加一个button 按钮 和一个combobox控件
'窗体的Load事件代码 

Private Sub frmTestBatchList_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        vault.LoginAuto("Trainning", Me.Handle.ToInt32)    '登陆PDM

        Dim userMgr As IEdmUserMgr5        '定义UserMgr5类型对象
        userMgr = vault
        Dim pos As IEdmPos5
        pos = userMgr.GetFirstUserPosition '获得第一个用户
        Dim user As IEdmUser5
        While Not pos.IsNull
            user = userMgr.GetNextUser(pos) '获得用户
            ComboBox1.Items.Add(user.Name)  '添加用户到comboBox
        End While
    End Sub
'按钮事件的代码 

Private Sub btnSendMsg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSendMsg.Click
        Dim userMgr As IEdmUserMgr5
        userMgr = vault
        Dim user As IEdmUser5
        user = userMgr.GetUser(ComboBox1.Text)         '获取ComboBox中所选中的用户
        Dim smessage As IPJMessage = New ThirdClass()
        Dim noti As Notification
        noti = New Notification(user)      '传user到Notification类的构造函数
        noti.SendMessage(smessage)         '发送消息
    End Sub
posted on 2010-03-24 13:34  暴雨前的宁静  阅读(1199)  评论(1编辑  收藏  举报