界面控件DevExpress WinForms中文教程:WinExplorer视图 - 上下文按钮

原创|使用教程|编辑:龚雪|2025-06-18 10:59:56.500|阅读 3 次

概述:本教程提供DevExpress WinFormsWinExplorer视图的基本信息,欢迎下载最新版组件体验!

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

在本文中您将学习到如何向View项添加上下文按钮,从而将View转换为交互式图像库。

由于WinExplorer视图可以被视为带有数据源的图像库,因此您可能希望允许最终用户与这些图像进行交互,这可以使用上下文按钮功能来完成。

获取DevExpress WinForms 正式版下载

DevExpress技术交流群11:749942875      欢迎一起进群讨论

启用ExtraLarge样式

首先将视图的WinExplorerViewOptionsView.Style设置为WinExplorerViewStyle.ExtraLarge,这将为图像区域内的上下文按钮提供足够的空间。

DevExpress WinForms中文使用教程图集

然后,从WinExplorerView.ColumnSet中删除WinExplorerViewColumns.TextColumn。启动应用程序,看到现在只有图像显示。

DevExpress WinForms中文使用教程图集
添加上下文按钮

接下来,找到WinExplorerView.ContextButtons属性并调用编辑器对话框。

DevExpress WinForms中文使用教程图集

在这里,您可以添加由所有视图项共享的上下文按钮。有三种按钮类型:简单的按钮、检查按钮和评级控件,选择一个简单的Context Button类型按钮类型并将其添加到集合中,以类似的方式,添加另一个简单的按钮、一个检查按钮和一个评级控件。

DevExpress WinForms中文使用教程图集

第一个按钮将用作显示汽车型号名称的标签,目前将其ContextButtonBase.Caption设置为MODEL,并将其与MiddleTop对齐。

DevExpress WinForms中文使用教程图集

对于第二个按钮,从DevExpress图标库中选择问号图像,此按钮将显示其他汽车信息。

DevExpress WinForms中文使用教程图集

更改ContextItem.AlignmentOptions属性来将此按钮移动到右上角。

评级项目将允许最终用户对汽车进行评级,将其移动到MiddleBottom位置。

显示上下文按钮面板

默认情况下,当您将鼠标悬停在相应区域时,按钮将显示在基础图像上方。您还可以启用顶部和底部面板,它们将作为按钮的容器出现。展开WinExplorerView.ContextButtonOptions属性,设置顶部和底部面板的背景色为150,0,0,0,这是一个半透明的黑色,然后为两个面板添加填充。

DevExpress WinForms中文使用教程图集

运行应用程序来查看结果,面板已经出现,但现在面板和按钮颜色之间没有足够的对比。

DevExpress WinForms中文使用教程图集

返回到上下文按钮编辑器,并将所有项目的前景色设置为Gainsboro,确保打开字形皮肤功能,以便按钮图标被绘制为相同的颜色。

DevExpress WinForms中文使用教程图集

然后再次启动应用程序,看到所有颜色都已应用。

DevExpress WinForms中文使用教程图集
自定义单个上下文按钮

要正确初始化复选框和标题标签,处理WinExplorerView.ContextButtonCustomize事件,它允许您在按钮显示在项目中之前自定义按钮。要设置标题按钮中的值,请将其ContextButtonBase.Caption属性设置为当前记录中的Model Name列值。类似地,根据In Stock列的值设置检查按钮的CheckContextButton.Checked属性。

C#

using DevExpress.XtraGrid.Views.WinExplorer;
// ...
private void winExplorerView1_ContextButtonCustomize(object sender, DevExpress.XtraGrid.Views.WinExplorer.WinExplorerViewContextButtonCustomizeEventArgs e) {
WinExplorerView view = sender as WinExplorerView;
if (view == null) return;
if (e.Item.Name == "contextTitleButton")
((ContextButton)e.Item).Caption = (string)view.GetRowCellValue(e.RowHandle, colModel_Name);
if (e.Item.Name == "CheckContextButton")
((CheckContextButton)e.Item).Checked = (string)view.GetRowCellValue(e.RowHandle, colInStock);
}

运行应用程序来查看更改——在顶部面板中显示的汽车型号和指示库存汽车的复选框。

DevExpress WinForms中文使用教程图集
响应点击上下文按钮

最后,处理WinExplorerView.ContextButtonClick事件,对于任何被单击的按钮,无论其类型如何,该事件都会触发。首先确定单击了哪个按钮,如果是问号按钮,则显示一个消息框,其中包含有关汽车的其他信息,这些信息由来自同一数据记录的字段值组成。

C#

using DevExpress.XtraGrid.Views.WinExplorer;
// ...
private void winExplorerView1_ContextButtonClick(object sender, ContextItemClickEventArgs e) {
WinExplorerView view = sender as WinExplorerView;
if (view == null) return;
string caption = e.Item.Name;
switch (caption) {
case "ContextButton":
string horsepower = view.GetRowCellValue((Int32)e.DataItem, colHorsePower).ToString;
string cilinders = view.GetRowCellValue((Int32)e.DataItem, colCilinders).ToString;
string doors = view.GetRowCellValue((Int32)e.DataItem, colDoors).ToString;
string mpgCity = view.GetRowCellValue((Int32)e.DataItem, colMPGCity).ToString;
string mpgHighway = view.GetRowCellValue((Int32)e.DataItem, colMPGHighway).ToString;
XtraMessageBox.Show("Horsepower: " + horsepower + "\nCilinders: " + cilinders + "\nDoors: " + doors +
"\nMPG City: " + mpgCity + "\nMPG Highway: " + mpgHighway, "Additional Info");
}
}

运行应用程序并单击其中一项中的问号按钮来查看消息框。

DevExpress WinForms中文使用教程图集

更多DevExpress线上公开课、中文教程资讯请上中文网获取

关于慧都科技

慧都是⼀家⾏业数字化解决⽅案公司,专注于软件、⽯油与⼯业领域,以深⼊的业务理解和⾏业经验,帮助企业实现智能化转型与持续竞争优势。

慧都科技是DevExpress的中国区的合作伙伴,DevExpress作为用户界面领域的优秀产品,帮助企业高效构建权限管理、数据可视化(如网格/图表/仪表盘)、跨平台系统(WinForms/ASP.NET/.NET MAUI)及行业定制解决方案,加速开发并强化交互体验。


标签:

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

文章转载自:慧都网

为你推荐

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


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP