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

DataToolbar

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (2投票s)

2014 年 6 月 26 日

CPOL

5分钟阅读

viewsIcon

17269

downloadIcon

976

DataToolbar 将标准的 DataNavigator 提升到一个更高的水平。

Visual Studio 项目、文档和帮助文件

  

引言

每次开发人员编写数据驱动的应用程序时,他都需要为最终用户提供数据管理功能,例如“创建新记录”。直到较新的 .NET Framework,Microsoft 都在其 Visual Studio 工具箱中包含了一个标准的 DataNavigator 控件来帮助开发人员。但是,如果您检查此控件的功能,您会发现缺少一些功能。

按条件(筛选)选择记录怎么样?排序怎么样?等等。因此,我开发了自己的控件 DataToolbar 以及第二个控件(姊妹控件)高级 Statusstrip

DataToolbar 控件能为您做什么?

DataToolbar 控件将 Microsoft® 的 Data Navigator 控件的理念提升到一个新的高级数据管理功能,最终用户可以轻松处理。

最终用户功能

  • 手动移动到记录(第一条、上一条、下一条、最后一条)
  • 自动从记录移至记录(快进/快退),速度可调
  • 显示当前记录位置、总记录数和过滤记录数
  • 创建新记录
  • 复制现有记录(当前记录)
  • 拒绝数据更改(当前、过滤或所有有更改的记录)
  • 手动点击保存挂起的更改
  • 在激活其他操作(如记录移动)之前自动保存挂起的更改
  • 书签并跳转到特定记录
  • 通过内置的用户友好筛选条件生成器筛选记录
  • 存储最多 5 个筛选条件值,以便以后使用预定义的筛选
  • 通过内置的用户友好排序条件生成器对记录进行排序
  • 通过文本和图像指示器显示数据表和当前记录状态信息
  • 工具栏项目智能启用和禁用

开发人员功能

  • 数据对象/数据库无关,因为使用了父窗体 Bindingsource 和 TableManager 对象。
  • 更改背景颜色和背景图像
  • 对齐工具栏项目(左对齐、居中、右对齐)
  • 设置按钮大小(小、中、大)
  • 通过具有唯一 Activity ID 的特殊事件获取活动的流程信息
  • 能够终止活动
  • 特殊窗体/控件脏标记功能,包括 DataGridView 控件
  • 通过具有唯一 Activity ID 的特殊事件获取错误信息
  • 如果需要,将消息信息直接发送到单独的姊妹控件 advancedStatusstrip ,使用 Statusstrip 控件的内置 Progressbar
  • 使用自定义属性集准备控件

该控件内置了 Windows 帮助文件,并附带大量文档文件。这些文件是 PDF 和 RTF 格式,开发人员可以在自己的文档中使用。

有三个不同的文件

  • DataToolbarManual_EN 是 Windows 帮助文件的 文本文档
  • DataToolbarDeveloper_EN 是一份详细解释控件代码的文档。
  • DataToolbar_EN.chm - 帮助文件。

请在 ZIP 文件中的 Documentation 目录中查找这些文件。

背景

要理解控件的代码,您应该熟悉 VB.NET 和 ADO.NET。

Using the Code

在这个部分找到代码片段是很正常的,但控件有 2200 多行代码,我认为在这里展示它会占用本文的空间。所有代码都经过深入注释,并在 95 页的 DataToolbarDeveloper_EN 文档中进行了详细解释!因此,我不再在这里展示代码。

下载 DataToolbarDeveloper_EN.pdf

这可以让你对文档有一个印象

在 ZIP 文件中,您会找到一个 Testproject (控件项目),在 Testproject BIN 目录中,您可以找到姊妹控件 advancedStatusstrip 的 DLL。我希望尽快在另一篇文章中发布此控件。

关注点

通过检查代码,您将学习如何在 Windows Forms 中使用 ADO 和数据绑定控件(Bindingsource 等)。有一个特殊的解决方案可以回答一个经常被问到的问题:“如何为窗体编写脏标记?”以及一个问题:“上下文菜单控件如何包含 Listview ?”

数据对象无关? 这是什么意思?如果您将 Table 或 Column 等数据对象从 Visual Studio Dataobject Toolbox 拖到 Form 上,VS 会自动创建几个类

  • Dataset 用于临时存储数据
  • Bindingsource 用于管理数据绑定控件
  • TableAdapterManager 和 TableAdapters 用于特殊数据表。

这些类的创建基于对不同类型数据库(数据提供程序)的数据事务的处理,所有不同的命令都封装在这些类中。这是使用 ADO 对象的神奇之处之一。通过 Bindingsource 和 TableAdapter,开发人员能够编写与数据库无关的数据管理。这种优势的负面之处在于,他受到 Bindingsource 和 TableAdapter 的可能性和属性的限制。因此,当需要灵活性和完全控制时,可以决定使用直接 SQL 命令和通过 .Net System.Data 对象进行直接数据库通信。

如果您想要完全的控制和灵活性,您可能不应该使用 DataToolbar 控件!但根据我的经验,在大多数情况下,您使用该控件的决定将满足您的需求。

如果您喜欢我解决这个任务的方式,让开发人员有机会通过属性与控件交互,或与控件进程(工作流)交互并获取详细的错误信息,请随时模仿。这取决于我 20 多年的编码经验。

历史

注意:文档仅在主要更新时更改

3.03.5300 2014/07/03 - 小幅改动

  • DataToolbar_Load 事件已更改isDirty 控件现在也监控 DataGridView
  • Sub isDirtychangedUpdateColumn 添加了自动 DateTimeStamp
  • DropDownButton 菜单项添加了图标
  • 修正了文章的文本

3.03.5301 2014/07/07 - 中等改动

  • 实现了筛选存储功能。
  • 更新了帮助文件。
  • 更新了开发人员文档。
  • 更新了文章(感谢 Mika)

即将推出:

  • 2014 年 8 月:德语帮助文件。
  • 2014 年 8 月:新文章 advancedStatusstrip。

 

© . All rights reserved.