JOC快速开发框架按方向复制填充单元格
效果图
在可编辑的单元格右键,可以显示四个快捷填充菜单
输入要填充的单元格数
点击确定,自动向下复制
其他三个方向复制效果相同
实现方法
JOC快速开发框架已经集成了右键菜单方法
调用表格的RegisterPopueMenu
扩展方法,设置ShowCopyMenu
属性为True
C# 全选
// 注册表格右键菜单
_DetailPopMenu = gvDetail_DeviceStopDetails.RegisterPopueMenu();
// 显示快捷复制菜单
_DetailPopMenu.ShowCopyMenu = true;
JOC快速开发框架实践
在JOC快速开发框架中的实例:
C# 全选
Library.GridViewPopupMenu.GridViewCommonPopupMenu _DetailPopMenu;
protected override void InitializeForm()
{
gvMainData.RegisterPopueMenu();
_DetailPopMenu = gvDetail_DeviceStopDetails.RegisterPopueMenu();
_DetailPopMenu.OnCopyValue += _DetailPopMenu_OnCopyValue;
}
添加复制事件,当复制员工编号的时候,把员工姓名也复制一下
C# 全选
// 当复制员工编号时,把员工姓名也复制过去
private void _DetailPopMenu_OnCopyValue(object sender, Library.GridViewPopupMenu.GridViewCommonPopupMenu.CopyEventArgs e)
{
var view = sender as GridView;
if (e.Column == colD_DeviceStopDetails_EmpCode)
{
switch (e.FillDirection)
{
case Library.GridViewPopupMenu.GridViewCommonPopupMenu.CopyDirection.Down:
{
var handle = view.FocusedRowHandle;
var empName = view.GetFocusedRowCellValue(colD_DeviceStopDetails_EmpName);
for (int i = 1; i <= e.FillCellCount; i++)
{
// 超出边界
if ((handle + i) >= view.RowCount) return;
view.SetRowCellValue(handle + i, colD_DeviceStopDetails_EmpName, empName);
}
}
break;
case Library.GridViewPopupMenu.GridViewCommonPopupMenu.CopyDirection.Up:
{
var handle = view.FocusedRowHandle;
var empName = view.GetFocusedRowCellValue(colD_DeviceStopDetails_EmpName);
for (int i = 1; i <= e.FillCellCount; i++)
{
// 超出边界
if ((handle - i) < 0) return;
view.SetRowCellValue(handle - i, colD_DeviceStopDetails_EmpName, empName);
}
}
break;
}
}
}
只有当窗体处于编辑状态(新增或修改)下,才展示右键复制菜单
C# 全选
// 当编辑状态下才显示复制菜单
protected override void DataStateChanged(FormDataState NewState)
{
base.DataStateChanged(NewState);
_DetailPopMenu.ShowCopyMenu = this.IsAddOrEdit;
}
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YESWinform 张国生