c# - 仅使用devexpress的功能时如何区分剪切事件和复制事件
问题描述
我开始从Devexpress.com
. 但是当我阅读这段代码时:
> using DevExpress.XtraBars;
private void Form1_Load(object sender, EventArgs e) {
BarManager barManager = new BarManager();
barManager.Form = this;
// Prevent excessive updates while adding and customizing bars and bar items.
// The BeginUpdate must match the EndUpdate method.
barManager.BeginUpdate();
// Create two bars and dock them to the top of the form.
// Bar1 - is a main menu, which is stretched to match the form's width.
// Bar2 - is a regular bar.
Bar bar1 = new Bar(barManager, "My MainMenu");
Bar bar2 = new Bar(barManager, "My Bar");
bar1.DockStyle = BarDockStyle.Top;
bar2.DockStyle = BarDockStyle.Top;
// Position the bar1 above the bar2
bar1.DockRow = 0;
// The bar1 must act as the main menu.
barManager.MainMenu = bar1;
// Create bar items for the bar1 and bar2
BarSubItem subMenuFile = new BarSubItem(barManager, "File");
BarSubItem subMenuEdit = new BarSubItem(barManager, "Edit");
BarSubItem subMenuView = new BarSubItem(barManager, "View");
BarButtonItem buttonOpen = new BarButtonItem(barManager, "Open");
BarButtonItem buttonExit = new BarButtonItem(barManager, "Exit");
BarButtonItem buttonCopy = new BarButtonItem(barManager, "Copy");
BarButtonItem buttonCut = new BarButtonItem(barManager, "Cut");
BarButtonItem buttonViewOutput = new BarButtonItem(barManager, "Output");
subMenuFile.AddItems(new BarItem[] { buttonOpen, buttonExit});
subMenuEdit.AddItems(new BarItem[] { buttonCopy, buttonCut});
subMenuView.AddItem(buttonViewOutput);
//Add the sub-menus to the bar1
bar1.AddItems(new BarItem[] {subMenuFile, subMenuEdit, subMenuView });
// Add the buttonViewOutput to the bar2.
bar2.AddItem(buttonViewOutput);
// A handler to process clicks on bar items
barManager.ItemClick += new ItemClickEventHandler(barManager_ItemClick);
barManager.EndUpdate();
}
void barManager_ItemClick(object sender, ItemClickEventArgs e) {
BarSubItem subMenu = e.Item as BarSubItem;
if (subMenu != null) return;
MessageBox.Show("Item '" + e.Item.Caption + "' has been clicked");
}
一切正常,它只是显示按钮的标题。但实际上,当用户单击剪切按钮时 -> 动作剪切就可以了(单击copy button
=> 动作复制就可以了)。但是剪切事件和复制事件都使用相同的功能barManager_ItemClick()
。那么只使用这个功能如何区分剪切事件和复制事件呢?
解决方案
除了处理 BarManager 的 ItemClick 事件,您可以为每个栏项分配一个单独的ItemClick 事件处理程序。这样可以更容易地区分哪个 BarButtonItem 发起了点击。
如果您不想这样做,则需要测试 BarManager 的 ItemClick 处理程序中的 e.Item 参数是否确定是哪个 BarButtonItem 触发了单击。
推荐阅读
- html - 我可以使用 css 添加额外的列表项元素吗?
- angular - 材料表:在哪里放置数据源初始化以使用路由器出口保存组件状态
- git - 为什么 Git 将子模块 URL 存储在两个地方?
- powershell - 如果构建失败,如何在 Azure DevOps PR 中创建评论?
- python-3.x - 为多个输入循环用户输入而不运行多次
- windows - yarn dev 命令在 Windows 10 上不起作用
- c# - Monogame中精灵类的具体例子
- python - 使用 awk 系统将特殊字符输入 python sys.argv
- visual-studio-2015 - 使用 Microsoft Azure 逻辑应用企业集成工具的 MSBuild 错误
- cordova - 错误 404 离子部署 Impl http://localhost/plugins/cordova-plugin-ionic/dist/common.js