gridview拖动实现多选

  1. //用于记录,鼠标是否已按下

  2.  
  3. bool isMouseDown = false;

  4.  
  5.  
  6.  
  7. //用于鼠标拖动多选,标记是否记录开始行

  8.  
  9. bool isSetStartRow = false;

  10.  
  11.  
  12.  
  13. //用于鼠标拖动多选,记录开始行

  14.  
  15. private int StartRowHandle = -1;

  16.  
  17.  
  18.  
  19. //用于鼠标拖动多选,记录现在行

  20.  
  21. private int CurrentRowHandle = -1;

  22.  
  23.  
  24.  
  25. //用于实现鼠标拖动选择多行功能中的一个方法,对单元格区域进行选中

  26.  
  27. private void SelectRows(int startRow, int endRow)

  28.  
  29. {

  30.  
  31. if (startRow > -1 && endRow > -1)

  32.  
  33. {

  34.  
  35. gridView.BeginSelection();

  36.  
  37. gridView.ClearSelection();

  38.  
  39. gridView.SelectRange(startRow, endRow);

  40.  
  41. gridView.EndSelection();

  42.  
  43. }

  44.  
  45. }

  46.  
  47.  
  48.  
  49. //实现鼠标拖动选择多行 ,鼠标按下事件

  50.  
  51. private void gridView_MouseDown(object sender, MouseEventArgs e)

  52.  
  53. {

  54.  
  55. if (e.Button == MouseButtons.Left)

  56.  
  57. {

  58.  
  59. isMouseDown = true;

  60.  
  61. }

  62.  
  63. }

  64.  
  65.  
  66.  
  67. //实现鼠标拖动选择多行 ,鼠标移动时

  68.  
  69. private void gridView_MouseMove(object sender, MouseEventArgs e)

  70.  
  71. {

  72.  
  73. if (isMouseDown)

  74.  
  75. {

  76.  
  77. GridHitInfo info = gridView.CalcHitInfo(e.X, e.Y);

  78.  
  79.  
  80.  
  81. //如果鼠标落在单元格里

  82.  
  83. if (info.InRow)

  84.  
  85. {

  86.  
  87. if (!isSetStartRow)

  88.  
  89. {

  90.  
  91. StartRowHandle = info.RowHandle;

  92.  
  93. isSetStartRow = true;

  94.  
  95. }

  96.  
  97. else

  98.  
  99. {

  100.  
  101. //获得当前的单元格

  102.  
  103. int newRowHandle = info.RowHandle;

  104.  
  105. if (CurrentRowHandle != newRowHandle)

  106.  
  107. {

  108.  
  109. CurrentRowHandle = newRowHandle;

  110.  
  111. //选定 区域 单元格

  112.  
  113. SelectRows( StartRowHandle, CurrentRowHandle);

  114.  
  115. }

  116.  
  117. }

  118.  
  119. }

  120.  
  121. }

  122.  
  123. }

  124.  
  125.  
  126.  
  127. //实现鼠标拖动选择多行 ,鼠标放开时

  128.  
  129. private void gridView_MouseUp(object sender, MouseEventArgs e)

  130.  
  131. {

  132.  
  133. StartRowHandle = -1;

  134.  
  135. CurrentRowHandle = -1;

  136.  
  137. isMouseDown = false;

  138.  
  139. isSetStartRow = false;

  140.  
  141. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值