DevExpress的NavBarControl组件中NavBarGroup如何触发展开或者折叠事件?
来源:互联网 发布:妮维雅男士 知乎 编辑:程序博客网 时间:2024/05/22 15:11
NavBarControl--NavBarGroup--NavBarItem
NavBarControl控件虽然很好用,但是有一点很讨厌,就是NavBarGroup没有公开出点击事件或者折叠事件,对我们的开发造成很多的不便...但是也不是没有办法解决!
我们都知道NavBarGroup的折叠是由Expanded属性控制的,那么这就好办啦.
转到NavBarGroup的定义Expanded属性:
public virtual bool Expanded { get; set; } //正好是一个virtual属性,那么我们就可以重写这个属性达到我们的目的
代码:
public class MyNavBarGroup : NavBarGroup { public MyNavBarGroup() : base() { } public MyNavBarGroup(string caption) : base(caption) { } //重写展开折叠属性,在set中触发自己定义的事件 private bool _Expanded = false; /// <summary> /// 展开折叠属性 /// </summary> public override bool Expanded { get { return _Expanded; } set { //触发改变之前的事件 CancelEventArgs args = new CancelEventArgs() { Cancel = false }; OnExpandChanging(args); //是否可以展开,是否取消,是否与上次一值想等 if (CanExpand && !args.Cancel && _Expanded != value) { base.Expanded = _Expanded = value; //触发修改之后的事件 OnExpandChanged(new ExpandedEventArgs(value)); } } } //自己加了一个属性,是否能够折叠或者展开,有的时候我们需要这个功能 private bool _CanExpand = true; /// <summary> /// 是否能够展开折叠(为false时,则不能展开或者折叠) /// </summary> public virtual bool CanExpand { get { return _CanExpand; } set { _CanExpand = value; } } /// <summary> /// 展开或者折叠之后 /// </summary> public event EventHandler<ExpandedEventArgs> ExpandChanged; protected virtual void OnExpandChanged(ExpandedEventArgs e) { if (ExpandChanged != null) { ExpandChanged(this, e); } } /// <summary> /// 展开或者折叠之前 /// </summary> public event EventHandler<CancelEventArgs> ExpandChanging; protected virtual void OnExpandChanging(CancelEventArgs e) { if (ExpandChanging != null) { ExpandChanging(this, e); } } } public class ExpandedEventArgs : EventArgs { public ExpandedEventArgs() { Expanded = false; } public ExpandedEventArgs(bool expanded) { Expanded = expanded; } /// <summary> /// 展开或者折叠 /// </summary> public bool Expanded { get; set; } }
MyNavBarGroup m = new MyNavBarGroup("Test MyGroup");
m.ExpandChanged += new EventHandler<ExpandedEventArgs>(m_ExpandChanged);
m.ExpandChanging += new EventHandler<CancelEventArgs>(m_ExpandChanging);
navBarControl1.Groups.Add(m);
- DevExpress的NavBarControl组件中NavBarGroup如何触发展开或者折叠事件(点击事件)?
- DevExpress的NavBarControl组件中NavBarGroup如何触发展开或者折叠事件?
- DevExpress NavBarControl控件鼠标左键单击Group实现Expanded(NavBarGroup触发展开或者折叠事件?)
- DevExpress组件之——NavBarControl
- vue---vue中如何自定义事件?子组件事件如何向上触发父组件事件?
- 如何监听CollapsingToolbarLayout的展开与折叠
- 如何监听CollapsingToolbarLayout的展开与折叠
- 如何监听CollapsingToolbarLayout的展开与折叠
- navBarControl设置左折叠
- Flex Tree组件展开和折叠的方法
- Angular文字折叠展开组件的原理分析
- 使用Animation实现组件的折叠和展开
- DevExpress中如何实现GridControl的分页功能(组件)
- zTree节点展开/折叠事件
- ASPxNavBar的折叠展开
- vue---vue2.x中父组件如何触发子组件事件方法?
- DevExpress学习笔记(二)-NavBarControl
- 如何在C#的TreeView控件中双击节点而不改变节点的展开/折叠状态
- linux下ssh无密码登陆不了的解决方法
- 利用wsdl.exe生成webservice代理类
- 表格排序检索
- 事务处理和并发性
- log4j 和slf4j的比较
- DevExpress的NavBarControl组件中NavBarGroup如何触发展开或者折叠事件?
- java 程序员上班那些事
- Oracle 起步日记(19)——安全管理、角色管理
- CMD命令行中cd命令用法
- ibatis执行SQL语句打印控制台的log4j.xml文件配置方法
- 实现数据跨域交互
- 跟我学plsql - 写可执行的语句 (二)
- 使用javascript的str和substr方法验证非法字符
- JVM了解