⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ucuserlist.vb

📁 <Visual Basic 数据库开发实例精粹(第二版)>一书首先介绍了Visual Basic(简称VB)开发的技巧和重点技术
💻 VB
字号:
Imports System.Windows.Forms

Public Class ucUserList
  Inherits System.Windows.Forms.UserControl

  Protected m_bShowInGroup As Boolean = True

#Region " Windows 窗体设计器生成的代码 "

  Public Sub New()
    MyBase.New()

    '该调用是 Windows 窗体设计器所必需的。
    InitializeComponent()

    '在 InitializeComponent() 调用之后添加任何初始化

  End Sub

  'UserControl 重写 dispose 以清理组件列表。
  Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    If disposing Then
      If Not (components Is Nothing) Then
        components.Dispose()
      End If
    End If
    MyBase.Dispose(disposing)
  End Sub

  'Windows 窗体设计器所必需的
  Private components As System.ComponentModel.IContainer

  '注意: 以下过程是 Windows 窗体设计器所必需的
  '可以使用 Windows 窗体设计器修改此过程。
  '不要使用代码编辑器修改它。
  Friend WithEvents imglistUser As System.Windows.Forms.ImageList
  Friend WithEvents ContextMenu1 As System.Windows.Forms.ContextMenu
  Friend WithEvents mnuDelete As System.Windows.Forms.MenuItem
  Friend WithEvents tlvUser As System.Windows.Forms.TreeListView
  Friend WithEvents imglistLarge As System.Windows.Forms.ImageList
  <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    Me.components = New System.ComponentModel.Container
    Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(ucUserList))
    Me.imglistUser = New System.Windows.Forms.ImageList(Me.components)
    Me.tlvUser = New System.Windows.Forms.TreeListView
    Me.ContextMenu1 = New System.Windows.Forms.ContextMenu
    Me.mnuDelete = New System.Windows.Forms.MenuItem
    Me.imglistLarge = New System.Windows.Forms.ImageList(Me.components)
    Me.SuspendLayout()
    '
    'imglistUser
    '
    Me.imglistUser.ImageSize = New System.Drawing.Size(16, 16)
    Me.imglistUser.ImageStream = CType(resources.GetObject("imglistUser.ImageStream"), System.Windows.Forms.ImageListStreamer)
    Me.imglistUser.TransparentColor = System.Drawing.Color.Transparent
    '
    'tlvUser
    '
    Me.tlvUser.ContextMenu = Me.ContextMenu1
    Me.tlvUser.Dock = System.Windows.Forms.DockStyle.Fill
    Me.tlvUser.HideSelection = False
    Me.tlvUser.Location = New System.Drawing.Point(0, 0)
    Me.tlvUser.MultiSelect = False
    Me.tlvUser.Name = "tlvUser"
    Me.tlvUser.ShowPlusMinus = False
    Me.tlvUser.Size = New System.Drawing.Size(432, 312)
    Me.tlvUser.SmallImageList = Me.imglistUser
    Me.tlvUser.TabIndex = 0
    '
    'ContextMenu1
    '
    Me.ContextMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnuDelete})
    '
    'mnuDelete
    '
    Me.mnuDelete.Index = 0
    Me.mnuDelete.Shortcut = System.Windows.Forms.Shortcut.Del
    Me.mnuDelete.Text = "删除"
    '
    'imglistLarge
    '
    Me.imglistLarge.ImageSize = New System.Drawing.Size(2, 40)
    Me.imglistLarge.TransparentColor = System.Drawing.Color.Transparent
    '
    'ucUserList
    '
    Me.Controls.Add(Me.tlvUser)
    Me.Name = "ucUserList"
    Me.Size = New System.Drawing.Size(432, 312)
    Me.ResumeLayout(False)

  End Sub

#End Region

  '控件初始化
  Private Sub ucUserList_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ReloadUserList()
  End Sub

  Public Sub ReloadUserList()
    Dim ErrMsg As String
    Dim Ary As New System.Collections.ArrayList
    Dim userObj As New InfoProSysBusiness.User
    Dim dmUser As InfoProSysBusiness.UserDataModel
    ErrMsg = userObj.GetAllUsers(Ary)

    Application.DoEvents()
    'Me.SuspendLayout()
    tlvUser.Items.Clear()
    tlvUser.Clear()

    tlvUser.Columns.Add("用户帐号", 125, HorizontalAlignment.Left)
    tlvUser.Columns.Add("真实姓名", 125, HorizontalAlignment.Left)
    tlvUser.Columns.Add("所属部门", 125, HorizontalAlignment.Left)
    tlvUser.Sort()

    Dim i As Integer
    For i = 0 To Ary.Count - 1
      dmUser = Ary(i)
      AddItemToListView(dmUser)
    Next i

    tlvUser.ExpandAll()
  End Sub



  '将一个用户添加到TreeListView中,并按部门分组
  Private Sub AddItemToListView(ByVal dmUser As InfoProSysBusiness.UserDataModel)
    Dim item As TreeListViewItem
    Dim RoleItem As TreeListViewItem = Nothing
    Dim i As Integer

    '初始化一个item
    item = New TreeListViewItem(dmUser.m_szUserAccount, 1)
    item.Tag = dmUser.m_iUserID
    item.SubItems.Add(dmUser.m_szTrueName)
    item.SubItems.Add(dmUser.m_szRoleName)

    '以不分组的方式显示
    If Not m_bShowInGroup Then
      tlvUser.Items.Add(item)
    Else
      '以分组的方式显示,查找相应的组是否存在
      For i = 0 To tlvUser.Items.Count - 1
        If tlvUser.Items(i).Tag = dmUser.m_iRoleID Then
          RoleItem = tlvUser.Items(i)
          Exit For
        End If
      Next
      '如果没有找到了相应的组,则先实例化一份
      If RoleItem Is Nothing Then
        RoleItem = New TreeListViewItem(dmUser.m_szRoleName)
        RoleItem.Tag = dmUser.m_iRoleID
        RoleItem.Font = New Font(RoleItem.Font, FontStyle.Bold)
        tlvUser.Items.Add(RoleItem)
      End If
      RoleItem.Items.Add(item)
    End If

  End Sub

  Private Sub tlvUser_ContextMenuChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tlvUser.ContextMenuChanged
    Dim i As Integer = 0
  End Sub

  Private Sub tlvUser_BeforeCollapse(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeListViewCancelEventArgs) Handles tlvUser.BeforeCollapse
    e.Cancel = True
  End Sub

  Private Sub tlvUser_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles tlvUser.MouseUp
    '基本条件
    If e.Button = MouseButtons.Right _
          And tlvUser.SelectedItems.Count > 0 Then
      '进一步条件判断
      If tlvUser.SelectedItems(0).Level > 0 Then
        tlvUser.ContextMenu = ContextMenu1
      End If

    Else
      tlvUser.ContextMenu = Nothing
    End If
  End Sub


  Private Sub mnuDelete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuDelete.Click
    If tlvUser.SelectedItems.Count <= 0 Then
      Return
    End If

    MsgBox("在这里添加删除用户的代码")

  End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -