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
/// <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
/// <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
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
/// <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
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

参考文档:
WinFramework轻量级开发框架 | 功能按钮事件详解|C/S开发框架
DevExpress GridView单元格CellValueChanged事件详解
.NET代码生成器V6.1 - 快速生成Winform窗体代码
CSFrameworkV6旗舰版 | 单表基础资料窗体完整C#源码|C/S开发框架
C/S Winform开发框架 | 单表基础资料窗体实现主从表资料管理|C/S开发框架
CSFrameworkV6旗舰版 | 业务单据复制功能,支持复制多级明细表|C/S开发框架
CSFrameworkV6|主从表基础资料窗体扩展【复制】按钮|C/S开发框架
CSFrameworkV6旗舰版 - 业务单据复制功能,支持复制多级明细表
扩展按钮功能:数据字典窗体复制记录单据数据 | CSFrameworkV5旗舰版开发指南|C/S开发框架
模块主窗体添加功能按钮 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
四.业务单据窗体开发步骤|业务单据窗体|C/S快速开发框架|标准版V2.3|软件手册
一.业务单据窗体基类介绍|业务单据窗体|C/S快速开发框架|标准版V2.3|软件手册
一.数据字典窗体|基础资料窗体|C/S快速开发框架|标准版V2.3|软件手册
软件开发框架培训实时讲解总结|CSFrameworkV5.1旗舰版|培训大纲
软件开发框架培训内容大全 | CSFrameworkV5.1旗舰版|培训大纲
业务单据窗体开发步骤|开发教程
WinFramework轻量级开发框架 | 功能按钮事件详解|C/S开发框架
DevExpress GridView单元格CellValueChanged事件详解
.NET代码生成器V6.1 - 快速生成Winform窗体代码
CSFrameworkV6旗舰版 | 单表基础资料窗体完整C#源码|C/S开发框架
C/S Winform开发框架 | 单表基础资料窗体实现主从表资料管理|C/S开发框架
CSFrameworkV6旗舰版 | 业务单据复制功能,支持复制多级明细表|C/S开发框架
CSFrameworkV6|主从表基础资料窗体扩展【复制】按钮|C/S开发框架
CSFrameworkV6旗舰版 - 业务单据复制功能,支持复制多级明细表
扩展按钮功能:数据字典窗体复制记录单据数据 | CSFrameworkV5旗舰版开发指南|C/S开发框架
模块主窗体添加功能按钮 | MiniFramework蝇量框架 | Winform框架|C/S开发框架
四.业务单据窗体开发步骤|业务单据窗体|C/S快速开发框架|标准版V2.3|软件手册
一.业务单据窗体基类介绍|业务单据窗体|C/S快速开发框架|标准版V2.3|软件手册
一.数据字典窗体|基础资料窗体|C/S快速开发框架|标准版V2.3|软件手册
软件开发框架培训实时讲解总结|CSFrameworkV5.1旗舰版|培训大纲
软件开发框架培训内容大全 | CSFrameworkV5.1旗舰版|培训大纲
业务单据窗体开发步骤|开发教程
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
