彩票走势图

DotNetBar for WinForms入门教程(一):DotNetBar TokenEditor WinForms控件入门

翻译|使用教程|编辑:况鱼杰|2020-03-16 14:49:04.310|阅读 2135 次

概述:DotNetBar for WinForms中的TokenEditor控件是一个高级的文本框控件,它可以解析输入并将其转换为零件集(令牌)。这与现代电子邮件客户端中的电子邮件地址输入文本框非常相似,但更加灵活。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

DotNetBar for WinForms是一个拥有89个组件的用户界面控件套包,用户可以使用Visual Studio 2005-2015轻松地创建专业的用户界面。十多年来DotNetBar帮助开发人员轻松地创建易用的专业Windows Forms (WinForms) 用户界面。

点击立即下载DotNetBar for WinForms


DotNetBar for WinForms中的TokenEditor控件是一个高级的文本框控件,它可以解析输入并将其转换为零件集(令牌)。这与现代电子邮件客户端中的电子邮件地址输入文本框非常相似,但更加灵活。每个文本部分的令牌在被接受之前都会经过验证,因此如果未通过验证,则可以将其拒绝。这是此控件的外观示例:

DotNetBar WinForms TokenEditor Control

TokenEditor控件的关键是EditToken对象。用户输入的文本将转换为EditToken并在被接受之前进行验证。EditToken对象使您可以将Value(例如,电子邮件地址)和Text(例如,电子邮件地址的实际名称)与令牌相关联,并在选定时分配要显示在令牌文本旁边的图像或符号。

TokenEditor提供自动完成下拉列表,该列表将根据用户输入进行过滤,并允许您从预定义的令牌列表中选择令牌。TokenEditor.Tokens集合存储下拉列表中显示的EditToken对象的列表:


此代码显示了如何填充令牌集合的示例,因此自动完成弹出窗口将显示值:

// Load data into the TokenEditor for stored already recognized email addresses
tokenEmails.Tokens.Add(new EditToken("shawnsmith@yahoo.com", "Shawn Smith"));
tokenEmails.Tokens.Add(new EditToken("petebarley@gmail.com", "Pete Barley"));
tokenEmails.Tokens.Add(new EditToken("tobyhuck@email.com", "Toby Huck"));
tokenEmails.Tokens.Add(new EditToken("stevenratcliffe@proliancelimited.com", "Steven Ratcliffe"));
tokenEmails.Tokens.Add(new EditToken("dennissmith@gmail.com", "Dennis Smith"));
将令牌输入为文本并进行解析和验证后,它将存储在TokenEditor.SelectedTokens集合中。

分隔符和验证

当用户在TokenEditor中输入文本时,控件将监视Separators集合中列出的字符,遇到这些字符时,将对该文本进行解析,将其转换为EditToken对象,并在接受该令牌并将其添加到SelectedTokens集合中之前,将ValidateToken事件设置为 引发您提供修改和验证EditToken对象的机会。默认情况下,分隔符集合的逗号为“,”,分号为“;” 添加了用作标记分隔符的字符。

ValidateToken事件用于在将令牌添加到SelectedTokens集合之前对其进行验证。ValidateTokenEventArgs是事件中提供的事件参数。您可以将IsValid属性设置为false以拒绝令牌,例如,如果您正在验证电子邮件地址,则代码将如下所示:

Regex _MailRegex = new Regex(@"^[-a-z0-9!#$%&'*+/=?^_`{|}~]+(?:\.[-a-z0-9!#$%&'*+/=?^_`{|}~]+)*@(?:[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?\.)*(?:aero|arpa|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|[a-z][a-z])$", RegexOptions.Compiled);
private void tokenEmails_ValidateToken(object sender, DevComponents.DotNetBar.Controls.ValidateTokenEventArgs ea)
{
    // Validate email address before allowing it into the SelectedTokens collection
    ea.IsValid = _MailRegex.IsMatch(ea.Token.Value);
}
ValidateTokenEventArgs还提供以下属性:
  • IsNewToken –指示令牌是用户输入的文本中新创建的Token还是Tokens集合中的现有Token。
  • Token-返回对EditToken对象的引用,如果通过验证,该引用将添加到SelectedTokens集合中,即IsValid = true(默认设置)。如果需要,可以对此对象执行修改。
TokenEditor作为多选组合框

从DotNetBar的12.2版本开始,就在Token编辑器控件中添加了功能,因此您可以将其用作多选组合框控件。为此,只需将CheckBoxesVisible和DropDownButtonVisible属性设置为true,即可在Token编辑器中获得下拉按钮,以显示带有项目选择的弹出窗口,并且弹出窗口将使用复选框指示当前选择并允许选择/取消选择项目。由于默认情况下TokenEditor允许通过键盘输入项来输入新项,以禁止简单地处理ValidateToken事件,并且如果事件参数IsNewToken属性为true,则将IsValid = false设置为拒绝新项…

关键特性

  • BackgroundStyle –返回一个对象,该对象定义控件背景的外观及其边框。
  • CheckBoxesVisible –指示打开弹出窗口时是否在标记列表旁边显示复选框。 与DropDownButtonVisible属性结合使用时,可以创建多选样式组合框控件。
  • DropDownButtonVisible –指示控件内部是否显示下拉按钮,单击该按钮可显示弹出窗口。
  • DropDownHeight –指示自动完成下拉菜单的高度。
  • DropDownWidth –指示自动完成下拉菜单的宽度。
  • EnablePopupResize –指示最终用户是否可以调整自动完成弹出窗口的大小。
  • EnterKeyValidatesToken –指示是否在将Token文本输入到文本框中时按Enter键尝试验证Token并将文本转换为Token。
  • IsPopupOpen –指示是否打开自动完成弹出窗口。
  • MaxHeightLines –表示当AutoSizeHeight = true时,控件将增加到的最大行数。 设置为0表示无限增长。
  • PopupCloseButtonVisible –指示多列弹出窗口关闭按钮是否可见。
  • PreservePopupSize –指示如果最终用户调整弹出窗口的大小,是否在弹出显示之间保留自动完成的弹出窗口大小。
  • ReadOnly –指示最终用户可以添加还是删除Token。默认值为false。
  • RemoveTokenButtonVisible –指示是否在单个Token上显示“删除Token”按钮,以便可以将其从选择中删除。
  • 分隔符–分隔符的集合,用于将输入的文本划分为标记。
  • Tokens–可供选择的Token的集合。
  • ValidateTokenTextOnLostFocus –指示当控件失去焦点时是否验证输入到Token编辑器中的任何文本并将其转换为Token

关键事件

  • AutoCompletePopupOpened –打开自动完成弹出窗口后发生。
  • BeforeAutoCompletePopupOpen –在打开自动完成弹出窗口之前发生,并允许您取消打开弹出窗口。
  • RemoveToken –在最终用户从SelectedTokens中删除Token之前发生。
  • SelectedTokensChanged –当SelectedTokens集合更改时发生。
  • ValidateToken –当从自动完成列表中选择一个Token或将最终用户的文本输入解析为令牌以对其进行验证时,将发生ValidateToken。


想要获得DotNetBar for WinForms更多资源、正版授权的伙伴,请咨询了解

关注慧聚IT微信公众号☟☟☟,了解产品的最新动态及最新资讯。

慧聚IT


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP