65.9K
CodeProject 正在变化。 阅读更多。
Home

带筛选的通用记录选择器

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.67/5 (2投票s)

2009年4月16日

CPOL

2分钟阅读

viewsIcon

23352

downloadIcon

340

带数据筛选器的通用记录选择器 Windows 窗体

Record_Selector_Demo_Application

引言

我一直不太喜欢使用组合框来选择记录,所以我想出了记录选择器。通过将一组参数(数据集、列标题等)传递给记录选择器类库,你将获得一个新的Windows窗体,显示所有传递给它的数据。支持多条记录选择,并且文本框过滤器会在你输入时过滤每一项。

Using the Code

我包含了一个演示应用程序,但基本上,你需要添加对类库SZ-CL-0003的引用(我知道这命名方式不是最好或最具描述性的,但这是我一直使用的!),并声明一个string数组变量来分配选定的记录。

记录选择器使用以下参数:

数据集

一个标准的system.data.dataset。虽然当前版本只允许在屏幕上显示两列数据,但任何额外的列都将被添加到记录的工具提示文本中。工具提示文本包含在过滤器中。

strtitle

一个包含选择屏幕标题的string变量。

strcolumns

一个包含要在屏幕上显示的两个列的string数组(我可能会在以后增加这个数量)。

strfixed (可选 (默认: Nothing))

一个包含固定项的string数组,这些项将出现在列表中以供选择,但始终显示在列表顶部,并且不受过滤器影响。

每个固定项由一个3元素数组组成

  • (0) = 第1个固定项 第1列文本
  • (1) = 第1个固定项 第2列文本
  • (2) = 第1个固定项 工具提示文本
  • (3) = 第2个固定项 第1列文本
  • (4) = 第2个固定项 第2列文本
  • (5) = 第2个固定项 工具提示文本

blnmultiple (可选 (默认: True))

一个布尔值,用于确定是否允许进行多项选择。如果列表中选择多项,工具栏上将出现一个“选择”按钮,如果只需要一条记录,则只需双击该项即可选择它。

示例代码

以下代码允许用户从用户数据集中选择单个用户,或者通过选择<NEW>固定行项来添加新用户,应放置在按钮单击事件中。

在此示例中,已经添加了对SZ-CL-0003的引用,并且数据集已经创建并填充。

Dim selector As New SZ_CL_0003.Selector

Private Sub btnSelectSingleAddNew_Click(ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles btnSelectSingleAddNew.Click

   Dim strtitle As String = "Select Users"
   Dim strcolumns(2) As String
   Dim strfixed(3) As String

   strcolumns(0) = "User Code"
   strcolumns(1) = "Name"

   strfixed(0) = "<NEW>" 
   strfixed(1) = "Add New User"
   strfixed(2) = "Add a new user record to the database"

   Dim struser() As String = selector.Select_Records_
				(dataset, strtitle, strcolumns, strfixed, False)

   If struser IsNot Nothing Then

      For intloop As Integer = 0 To (UBound(struser) - 1)

         If struser(intloop) = "<NEW>" Then
            Add_New_User
         Else
            MessageBox.Show(struser(intloop), "User Selected", _
			MessageBoxButtons.OK, MessageBoxIcon.Information)
         End If

      Next

   End If

End Sub     

历史

  • 2009年4月16日 - 13:25 - 添加了代码以允许使用<RTN>键进行选择,或使用<ESC>键退出而不进行选择
© . All rights reserved.