zoukankan      html  css  js  c++  java
  • c1TrueDBGrid--使用键盘上的上下键来移动c1TrueDBGrid 表格内的数据(实现了上下移动)

    1.使用KeyDown、KeyPress事件好像不可以实现,所以使用了KeyUp事件

    //c1TrueDBGrid1_KeyUp事件

    private void c1TrueDBGrid1_KeyUp(object sender, KeyEventArgs e)

    {

    //获取c1TrueDBGrid1的数据
    DataTable dt = c1TrueDBGrid1.DataSource as DataTable;
    //当前行
    int rowIndex = this.c1TrueDBGrid1.Row;
    //往下移动
    if (e.KeyCode == Keys.Down)
    {
    if (rowIndex > 0 && rowIndex < dt.Rows.Count)
    {
    DataRow newdata = dt.NewRow();
    DataRow olddata = dt.NewRow();
    //获取当前行的数据
    newdata.ItemArray = dt.Rows[rowIndex].ItemArray;
    //获取当前行的上一行数据
    olddata.ItemArray = dt.Rows[rowIndex - 1].ItemArray;
    //移除当前行
    dt.Rows.RemoveAt(rowIndex);
    //移除当前行的上一行
    dt.Rows.RemoveAt(rowIndex - 1);

    //移除数据后插入新数据
    dt.Rows.InsertAt(newdata, rowIndex - 1);
    dt.Rows.InsertAt(olddata, rowIndex);
    dt.AcceptChanges();

    //设置选中行
    this.c1TrueDBGrid1.SetActiveCell(rowIndex, 1);
    }
    }
    //往上移动
    else if (e.KeyCode == Keys.Up)
    {
    //当前行
    //int rowIndex = this.c1TrueDBGrid1.Row;
    if (rowIndex > 0)
    {
    DataRow newdata = dt.NewRow();
    DataRow olddata = dt.NewRow();
    //获取当前行的数据
    newdata.ItemArray = dt.Rows[rowIndex + 1].ItemArray;
    //获取当前行的下一行数据
    olddata.ItemArray = dt.Rows[rowIndex].ItemArray;
    //移除当前行
    dt.Rows.RemoveAt(rowIndex);

    //移除数据后插入新数据
    dt.Rows.InsertAt(newdata, rowIndex);
    //dt.AcceptChanges();
    //移除当前行的下一行
    dt.Rows.RemoveAt(rowIndex + 1);

    //移除数据后插入新数据
    dt.Rows.InsertAt(olddata, rowIndex + 1);
    dt.AcceptChanges();
    this.c1TrueDBGrid1.SetActiveCell(rowIndex, 1);
    }
    }

    }

  • 相关阅读:
    系统重启
    Linux驱动程序开发
    Linux 下实现控制屏幕显示信息和光标的状态
    Linux C 语言 获取系统时间信息
    linux 获取系统屏幕分辨率
    Linux下得到显示屏参数的方法
    Linux如何关闭防火墙和查看防火墙的具体情况
    查看Linux下网卡状态或 是否连接(转)
    ArcGIS Engine中正确释放打开资源
    在ArcEngine下实现图层属性过滤的两种方法
  • 原文地址:https://www.cnblogs.com/jinjingBlog/p/10600787.html
Copyright © 2011-2022 走看看