我正在使用Devexpress PopupMenu来在右键单击时显示。现在我想在关闭此弹出菜单之前知道,就像Windows ContextMenu Closing事件一样。
PopupMenu有Closeup事件,但这是在关闭后触发的。实际上,我的目标是根据情况处理何时关闭弹出菜单。
有没有什么方法可以实现?
PopupMenu有Closeup事件,但这是在关闭后触发的。实际上,我的目标是根据情况处理何时关闭弹出菜单。
有没有什么方法可以实现?
您可以使用此属性分配上下文菜单并实现覆盖。当您在设计时将BarManager放置在表单上时,所有控件都会发布PopupContextMenu扩展器属性(其在属性窗口中的标题看起来像'PopupContextMenu on barManager1')。
private void barEditItem1_EditValueChanged(object sender, EventArgs e) {
popupMenu1.Manager.Bars[0].Tag = false;
}
using DevExpress.XtraBars;
using DevExpress.XtraBars.ViewInfo;
public class MyBarManager : BarManager {
protected override BarSelectionInfo CreateSelectionInfo() {
return new MyBarSelectionInfo(this);
}
}
public class MyBarSelectionInfo : BarSelectionInfo {
public MyBarSelectionInfo(BarManager manager)
: base(manager) {
}
public override void ClosePopup(IPopup popup) {
if (!(bool)Manager.Bars[0].Tag) {
Manager.Bars[0].Tag = true;
return;
}
base.ClosePopup(popup);
}
}