打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DataGridView 行记录上下移动

 经过自己一番简单的研究,发现在C#中实现很容易。自己临时写的,可能方法不是很好,但基本实现了预期的效果。

  1. // 上移  
  2. private void btnMoveUp_Click(object sender, EventArgs e)  
  3. {  
  4.     // 选择的行号  
  5.     int selectedRowIndex = GetSelectedRowIndex(this.dataGridView1);  
  6.   
  7.     if (selectedRowIndex >= 1)  
  8.     {  
  9.         // 拷贝选中的行  
  10.         DataGridViewRow newRow = dataGridView1.Rows[selectedRowIndex];  
  11.   
  12.         // 删除选中的行  
  13.         dataGridView1.Rows.Remove(dataGridView1.Rows[selectedRowIndex]);  
  14.   
  15.         // 将拷贝的行,插入到选中的上一行位置  
  16.         dataGridView1.Rows.Insert(selectedRowIndex - 1, newRow);  
  17.   
  18.         // 选中最初选中的行  
  19.         dataGridView1.Rows[selectedRowIndex - 1].Selected = true;  
  20.     }  
  21.   
  22. }  
  23.   
  24. // 下移  
  25. private void btnMoveDown_Click(object sender, EventArgs e)  
  26. {  
  27.     int selectedRowIndex = GetSelectedRowIndex(this.dataGridView1);  
  28.     if (selectedRowIndex < dataGridView1.Rows.Count-1)  
  29.     {  
  30.         // 拷贝选中的行  
  31.         DataGridViewRow newRow = dataGridView1.Rows[selectedRowIndex];  
  32.   
  33.         // 删除选中的行  
  34.         dataGridView1.Rows.Remove(dataGridView1.Rows[selectedRowIndex]);  
  35.   
  36.         // 将拷贝的行,插入到选中的下一行位置  
  37.         dataGridView1.Rows.Insert(selectedRowIndex + 1, newRow);  
  38.   
  39.         // 选中最初选中的行  
  40.         dataGridView1.Rows[selectedRowIndex + 1].Selected = true;  
  41.     }  
  42. }          
  1. // 获取DataGridView中选择的行索引号  
  2.         private int GetSelectedRowIndex(DataGridView dgv)  
  3.         {   
  4.             if(dgv.Rows.Count==0)  
  5.             {  
  6.                 return 0;  
  7.             }  
  8.               
  9.             foreach(DataGridViewRow row in dgv.Rows)  
  10.             {  
  11.                 if (row.Selected)  
  12.                 {  
  13.                     return row.Index;  
  14.                 }  
  15.             }  
  16.             return 0;  
  17.         } <pre class="csharp" name="code">        </pre><pre class="csharp" name="code">       // 显示序号,行号  
  18.         private void dataGridView1_RowPostPaint(object sender,DataGridViewRowPostPaintEventArgs e)  
  19.         {  
  20.             Rectangle rectangle = new Rectangle(e.RowBounds.Location.X,  
  21.                             e.RowBounds.Location.Y,  
  22.                             dataGridView1.RowHeadersWidth - 4,  
  23.                             e.RowBounds.Height);            TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),  
  24.                 dataGridView1.RowHeadersDefaultCellStyle.Font,rectangle,  
  25.                 dataGridView1.RowHeadersDefaultCellStyle.ForeColor,  
  26.                 TextFormatFlags.VerticalCenter | TextFormatFlags.Right);  
  27.         }  
  28. </pre><pre class="csharp" name="code"> </pre><pre class="csharp" name="code">        // 不显示出dataGridView1的最后一行空白     
  29.          dataGridView1.AllowUserToAddRows = false; </pre><br>  
  30. <br>  
  31. <pre></pre>  
  32. <pre></pre>  
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
DataGridView 冻结列或行
图片羽化移动代码
上下移动代码 精美边框
图片上下移动〔分开〕效果
上下移动动福字
上下移动代码+精美边框
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服