我正在尝试创建一个DevEx下拉按钮。不幸的是,我遇到了两个我搞不懂的问题:
( 1)无法正确获取弹出菜单,即它不像"Office 2010 Blue“那样具有外观。我使用的代码如下所示:
private void InitializeSendToPricingSheetButton()
{
var barManager = new BarManager();
if (barManager.Controller == null) barManager.Controller = new BarAndDockingController();
barManager.Controller.PaintStyleName = "Skin";
barManager.Controller.LookAndFeel.UseDefaultLookAndFeel = false;
barManager.Controller.LookAndFeel.SkinName = "Office 2010 Blue";
barManager.ItemClick += HandleSendToPricingSheetClick;
barManager.Items.AddRange(new[] { new BarButtonItem(barManager, "Foo"), new BarButtonItem(barManager, "Bar"), new BarButtonItem(barManager, "Baz") });
var popupMenu = new PopupMenu { Manager = barManager };
foreach (var barItem in barManager.Items) popupMenu.ItemLinks.Add((BarItem)barItem);
popupMenu.ItemLinks[1].BeginGroup = true;
dropDownButtonSendToPricingSheet.DropDownControl = popupMenu;
}( 2)这个按钮在表单上。如果表单失去焦点(例如,我点击Firefox),弹出菜单仍然在顶部。直到点击它才会消失。
任何建议都将是,非常感激。谢谢你帮我处理DevEx的精神错乱。
发布于 2012-09-30 14:49:56
我有办法回答你的第二个问题。
应该添加下拉按钮事件处理程序,如下所示:
dropDownButton1.LostFocus += new EventHandler(HidePopUp);处理程序方法应如下所示:
private void HidePopUp(object sender,object e)
{
dropDownButton1.HideDropDown();
}发布于 2014-05-19 15:49:49
对于第二个问题,您应该将bar manager属性的值赋值为:
BarManager manager = new BarManager();
manager.Form = this; // refers to current form 查找下面的链接以获得参考https://www.devexpress.com/Support/Center/Question/Details/Q274641
发布于 2012-09-26 10:52:11
使用DefaultLookAndFeel可能更简单
将此comp添加到您的表单中,并设置要使用的主题。没有必要为各个组件设置主题。
defaultLookAndFeel1.LookAndFeel.SetSkinStyle("Office 2010 Blue");https://stackoverflow.com/questions/12573244
复制相似问题