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

SplitButton:XP 风格的下拉分割按钮

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.73/5 (39投票s)

2006 年 9 月 18 日

CPOL

2分钟阅读

viewsIcon

299668

downloadIcon

11543

SplitButton 控件表示标准主题支持的 XP 风格的下拉分割按钮。

Demo

Demo

引言

昨天,我正在思考解决特定情况(从一个逻辑导出的具体操作)的最佳方法是分割按钮。在 MSDN 上搜索和搜索,但没有结果,所以我感到困惑:.NET 中没有分割按钮?不,没有。奇怪的是,存在一个 StripSplitButton(或类似的东西),即 ToolStrip 的分割按钮等效项。可能,因为它不是系统的标准控件,所以他们认为不包括该控件,因为它很容易用图像模拟其功能,这就是我所做的。

使用代码

该控件非常易于使用。无论如何,这是分步操作方法

  1. 在您的项目中包含 *SplitButton.cs* 和 *SplitButton.designer.cs*。
  2. 在 Visual Studio 的工具箱中加载程序集,或者只是在您的窗体中插入一个 Button 控件,然后将类型从 Button 更改为 SplitButton

    [已更新:06 年 10 月] 您可以在此处停止,分割状态的默认图像将由控件使用,或者您可以按照以下步骤自定义分割图像。

    可选

  3. 向您的窗体(或控件或任何其他内容)添加一个 ImageList,并将 SplitButtonImageList 属性设置为此 ImageList
  4. 将您想要的图像添加到 ImageList 中,用于 SplitButton 分割器侧面的状态:NormalHoverClickedDisabledFocused
  5. 现在,查看 SplitButton 的属性窗口,转到“Split Button Images”类别,然后只需从图像的列表框(SplitButtonImageList 中的图像)中为每个状态选择一个图像。
  6. 现在,您可以设置一些建议的选项:将 TextAlign 设置为MiddleLeft,将 ImageAlign 设置为MiddleRight,并将 TextImageRelation 设置为TextBeforeImage。 您完成了。

现在您可以为 SplitButton 设置一些自定义选项,以下是简要说明

  • bool DoubleClickedEnabled - 指示是否在 SplitButton 上引发双击事件。
  • bool AlwaysDropDown - 指示即使单击按钮部分,SplitButton 是否始终显示下拉菜单。
  • bool AlwaysHoverChange - 指示即使鼠标悬停在按钮部分上,SplitButton 是否始终在分割部分显示悬停图像状态。
  • bool CalculateSplitRect - 指示是否必须计算分割矩形(基于分割图像大小)。
  • bool FillSplitHeight - 指示即使分割图像高度较低,分割高度是否必须填充到按钮高度。
  • int SplitHeight - 分割高度(如果 CalculateSplitRect 设置为 true,则忽略)。
  • int SplitWidth - 分割宽度(如果 CalculateSplitRect 设置为 true,则忽略)。

除此之外,还有两个事件

  • ButtonClick - 在单击 SplitButton 的按钮部分时发生。
  • ButtonDoubleClick - 在双击 SplitButton 的按钮部分时发生。

结论

我知道这只是一个简单的控件,但在我看来它可能很有用。

所以,我想就这些了。希望您觉得有用,再见!

© . All rights reserved.