📄 ucuserlist.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 + -