设为首页 收藏本站
查看: 1139|回复: 0

[经验分享] Outlook add-ins webcasts讲座代码之二(设定学员信息)

[复制链接]

尚未签到

发表于 2015-9-13 13:19:46 | 显示全部楼层 |阅读模式
DSC0000.gif DSC0001.gif Partial Public Class ThisApplicationClass ThisApplication
DSC0002.gif     'outlook的菜单栏
    Dim _menuBar As Office.CommandBar = Nothing

    '创建菜单按钮
    Dim _topMenu As Office.CommandBarPopup = Nothing

    '创建生成日程的菜单按钮
    Dim _menuAppointment As Office.CommandBarButton

    '日程表中的菜单栏
    Dim _menuBarApponment As Office.CommandBar
    '日程表中的顶层菜单
    Dim _topMenuAppoinment As Office.CommandBarPopup = Nothing
    Dim _menuContactSelect As Office.CommandBarButton = Nothing

    Dim _appItem As Outlook.AppointmentItem = Nothing

DSC0003.gif DSC0004.gif     Private Sub _menuContactSelect_Click()Sub _menuContactSelect_Click(ByVal Ctrl As Microsoft.Office.Core.CommandBarButton, ByRef CancelDefault As Boolean)
        SelectStudents(_appItem)
DSC0005.gif     End Sub

    '选择参与课程的学生
    Private Sub SelectStudents()Sub SelectStudents(ByVal appitem As Outlook.AppointmentItem)
        Dim frmStudents As New StudentsList

        '遍历所有的学员信息
        Dim inbox As Outlook.MAPIFolder = Me.ActiveExplorer().Session. _
            GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)

        ' 获得收件箱下面所有的子文件夹
        Dim inboxFolders As Outlook.Folders = inbox.Folders

        Dim studentFolder As Outlook.MAPIFolder = Nothing

        Dim folder As Outlook.MAPIFolder = Nothing

        '获得学员联系人信息所在文件夹
        For Each folder In inbox.Folders
            If (folder.Name.Equals("Student")) Then
                studentFolder = folder
                Exit For
            End If
        Next

        Dim item As Object = Nothing
        Dim contact As Outlook.ContactItem = Nothing
        If (Not (studentFolder Is Nothing)) Then
            '遍历所有的联系人
            For Each item In folder.Items
                contact = TryCast(item, Outlook.ContactItem)

                Try
                    '将联系人添加到窗体的ListView中
                    Dim itemStudent As ListViewItem
                    itemStudent = frmStudents.lvStudents.Items.Add(contact.UserProperties("StudentsCode").Value)

                    itemStudent.SubItems(0).Text = contact.UserProperties("StudentsCode").Value
                    itemStudent.SubItems.Add(contact.LastName)
                    itemStudent.SubItems.Add(contact.Email1Address)
                Catch ex As Exception

                End Try
            Next

            frmStudents._appointment = appitem
            frmStudents.ShowDialog()
        End If
    End Sub
    Private Sub ShowItem()Sub ShowItem()
        '定义一个弹出窗口
        Dim _appInspector As Outlook.Inspector = Nothing

        '创建日程
        _appItem = Me.CreateItem(Outlook.OlItemType.olAppointmentItem)
        _appItem.Display()

        '设定课程的类型
        _appItem.Categories = "课程"
        '设定地点
        _appItem.Location = "三教室"
        '通过自定义属性设置讲课的老师
        _appItem.UserProperties.Add("Teacher", Outlook.OlUserPropertyType.olText)
        _appItem.UserProperties("Teacher").Value = "王老师"

        _appInspector = _appItem.GetInspector

        '为会议窗口设定菜单
        If (Not (_appInspector Is Nothing)) Then
            '获得菜单栏
            _menuBarApponment = _appInspector.CommandBars.ActiveMenuBar

            '在菜单栏中添加顶级菜单
            _topMenuAppoinment = _menuBarApponment.Controls.Add(Office.MsoControlType.msoControlPopup, _
                                                    Type.Missing, _
                                                    Type.Missing, _
                                                    _menuBarApponment.Controls.Count, _
                                                    True)
            _topMenuAppoinment.Caption = "学员信息管理"
            _topMenuAppoinment.Visible = True

            '添加下级菜单
            _menuContactSelect = _topMenuAppoinment.Controls.Add(Office.MsoControlType.msoControlButton, _
                                        Type.Missing, _
                                        Type.Missing, _
                                        Type.Missing, _
                                        True)
            _menuContactSelect.Caption = "选择学员"
            _menuContactSelect.Visible = True

            '增加菜单click事件处理函数
            AddHandler _menuContactSelect.Click, AddressOf _menuContactSelect_Click
        Else
            _appItem.Close(Outlook.OlInspectorClose.olDiscard)
            MsgBox("会议创建失败!")
        End If
    End Sub
    Private Sub _menuAppointment_Click()Sub _menuAppointment_Click(ByVal Ctrl As Microsoft.Office.Core.CommandBarButton, ByRef CancelDefault As Boolean)
        ShowItem()
    End Sub
    Public Sub CreateMenus()Sub CreateMenus()
        '获得菜单栏
        _menuBar = Me.ActiveExplorer().CommandBars.ActiveMenuBar

        If (Not (_menuBar Is Nothing)) Then

            Dim _control As Office.CommandBarControl

            '寻找学员信息管理菜单
            For Each _control In _menuBar.Controls
                If (_control.Caption = "学员信息管理") Then
                    _topMenu = _control
                End If
            Next

            If (Not (_topMenu Is Nothing)) Then
                '添加创建课程的菜单
                _menuAppointment = _topMenu.Controls.Add(Office.MsoControlType.msoControlButton, _
                                        Type.Missing, _
                                        Type.Missing, _
                                        Type.Missing, _
                                        True)
                _menuAppointment.Caption = "创建课程"
                _menuAppointment.Visible = True

                '为菜单增加点击事件处理函数
                AddHandler _menuAppointment.Click, AddressOf _menuAppointment_Click
            End If
        End If
    End Sub
DSC0006.gif End Class
DSC0007.gif

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-113083-1-1.html 上篇帖子: 如何删除Smartphone手机与Office同步后的重复项,如联系人、日程等。Keyword:office,Outlook,删除,重复项目 下篇帖子: Microsoft Outlook 由于本机的限制,该操作已被取消的错误解决方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表