ButtonStateChanged事件详解 - 当按钮状态改变时触发的事件

  ButtonStateChanged事件详解 - 当按钮状态改变时触发的事件

ButtonStateChanged事件详解 - 当按钮状态改变时触发的事件


ButtonStateChanged事件


当用户点击【新增】、【删除】、【修改】、【保存】、【取消】等数据操作按钮时立即触发,通知程序按钮状态发生变化。



注意事项:


ButtonStateChanged事件适用于控制当前界面的组件状态,比如设置组件的ReadOnly, Enable属性。

ButtonStateChanged事件被频繁触发,不建议在该事件内调用后台接口或查询数据。



【新增】操作按钮调用ButtonStateChanged事件


C# Code:


/// <summary>
/// 新增记录
/// </summary>
/// <param name="sender"></param>
public virtual void DoAdd(IButtonInfo sender)
{
  
this._UpdateType = UpdateType.Add;
  
this.SetEditMode();
  
this.ButtonStateChanged(_UpdateType);
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761




【修改】操作按钮调用ButtonStateChanged事件


C# Code:


/// <summary>
/// 修改数据
/// </summary>
/// <param name="sender"></param>
public virtual void DoEdit(IButtonInfo sender)
{
  
this._UpdateType = UpdateType.Modify;
  
this.SetEditMode();
  
this.ButtonStateChanged(_UpdateType);
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761




ButtonStateChanged事件应用实例(1),源码参考:


C# Code:


/// <summary>
/// 当按钮状态改变时触发的事件
/// </summary>
/// <param name="currentState"></param>
protected override void ButtonStateChanged(UpdateType currentState)// 按钮状态改变时触发的事件
{
//设置编辑明细页面的控件
this.SetDetailEditorsAccessable(panelDetailPage, this.DataChanged);
this.SetDetailEditorsAccessable(panelControl2, this.DataChanged);

txtARNO.Enabled
= false;
txtAppDate.Enabled
= false;
txtAppUser.Enabled
= false;
txtCurrency.Enabled
= false;
lblStatus.Text
= this.UpdateTypeName;

this.SetEditorEnable(txtCustomerName, false, true);//禁用客户名称
base.SetGridCustomButtonAccessable(gcDetail, this.DataChanged);//设置明细表格的按钮状态

//显示图片状态
ucOpacityImage1.ShowImage(_BLL);
}


//来源:C/S框架网 | www.csframework.com | QQ:23404761



ButtonStateChanged事件应用实例(2),源码参考:


C# Code:

//按钮状态改变时触发的事件
protected override void ButtonStateChanged(UpdateType currentState)
{
  
base.ButtonStateChanged(currentState);
  
  
if (currentState == UpdateType.Modify)
  {
    
//txtSONO.Enabled= false;//修改状态下不允许修改【主键】的数据
    
txtSONO.Properties.ReadOnly = true;//修改状态下不允许修改【主键】的数据
    
}
    txtISID.Properties.ReadOnly
= true;//禁止修改
    
txtCreationDate.Properties.ReadOnly = true;//禁止修改
    
txtCreatedBy.Properties.ReadOnly = true;//禁止修改
    
txtLastUpdateDate.Properties.ReadOnly = true;//禁止修改
    
txtLastUpdatedBy.Properties.ReadOnly = true;//禁止修改
    
txtFlagApp.Properties.ReadOnly = true;//禁止修改
    
txtAppUser.Properties.ReadOnly = true;//禁止修改
    
txtAppDate.Properties.ReadOnly = true;//禁止修改
    
}
    
    
    
//来源:C/S框架网 | www.csframework.com | QQ:23404761





C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务


版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

ButtonStateChanged事件详解 - 按钮状态改变触发事件
解决方案:C# 按钮不可见(Visible=False),调用Button.PerformClick事件无效!
C# 跟踪对象所有事件触发
DevExpress GridView单元格CellValueChanged事件详解
C#深入剖析事件(C# Event详解)
扩展按钮功能 - 扩展一个【复制单据】按钮操作详解
[原创]老鼠->猫->人 事件触发
在数据编辑状态关闭主窗体会两次提示
窗体操作状态
功能按钮事件详解
Dev表格RepositoryItemLookUpEdit组件改变设置其它列值-原创
关于LookupEdit组件选择一条纪录不触发EditValueChanged事件
C#委托(Delegate)事件(Event)应用详解 (原)
窗体自定义按钮权限控制-扩展权限按钮详解
修改单元格关联更新其它列值,Dev GridView组件OnCellValueChanged事件实现
C#获取按钮EventClick事件,EventHandlerList委托调用列表
DevExpress GridView在只读状态下如何隐藏表格按钮EditorShowMode|ShowButtonMode
C#拖放技术(Drop&Drag)相关方法和事件
实例讲解基于事件银行营销系统架构
C/S开发框架Toolbar按钮动态生成与调用关系