如何同时选择DataGrid的多行

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

      

DataGrid控件默认情况下就是支持多行选择的,但需要按Ctrl键进行多行选择。通过声明三个Event Handlers我们可以不按Ctrl直接进行选择。依次加入

相关事件 ,同时创建一个arraylist来存储哪几列被选中就行了,因为有时候用户会在选择中考虑,可能点了又点,点选成高亮的最后不一定是被选中的行

主要代码如下:

 1 None.gif      ArrayList ArrayListSelectedRow  =   new  ArrayList();
 2 None.gif       private   void  DataGrid1_CurrentCellChanged( object  sender, EventArgs e)
 3 ExpandedBlockStart.gifContractedBlock.gif       dot.gif {
 4InBlock.gif         int cri = DataGrid1.CurrentRowIndex;
 5InBlock.gif         DataGrid1.Select(cri);
 6InBlock.gif         Console.WriteLine("In Cell Changed");
 7InBlock.gif         DataGrid1_Click( sender,  e);
 8ExpandedBlockEnd.gif      }

 9 None.gif       private   void  DataGrid1_Click( object  sender, EventArgs e)
10 ExpandedBlockStart.gifContractedBlock.gif       dot.gif {
11InBlock.gif         int cri = DataGrid1.CurrentRowIndex;
12InBlock.gif         DataGrid1.Select(cri);
13InBlock.gif         Console.WriteLine("In Click");
14ExpandedBlockEnd.gif      }

15 None.gif       private   void  DataGrid1_MouseUp( object  sender, MouseEventArgs e)
16 ExpandedBlockStart.gifContractedBlock.gif       dot.gif {
17InBlock.gif         int cri = DataGrid1.CurrentRowIndex;
18InBlock.gif         if(ArrayListSelectedRow.Contains(cri))
19ExpandedSubBlockStart.gifContractedSubBlock.gif         dot.gif{
20InBlock.gif            DataGrid1.UnSelect(cri);
21InBlock.gif            ArrayListSelectedRow.Remove(cri);
22ExpandedSubBlockEnd.gif         }
            
23InBlock.gif         else
24ExpandedSubBlockStart.gifContractedSubBlock.gif         dot.gif{
25InBlock.gif             DataGrid1.Select(cri);
26InBlock.gif
27InBlock.gif             ArrayListSelectedRow.Add(cri);
28ExpandedSubBlockEnd.gif         }
 
29InBlock.gif         for (int i = 0; i < ArrayListSelectedRow.Count; i++)
30ExpandedSubBlockStart.gifContractedSubBlock.gif         dot.gif{
31InBlock.gif            DataGrid1.Select(int.Parse(ArrayListSelectedRow [i].ToString()));
32ExpandedSubBlockEnd.gif         }

33InBlock.gif         Console.WriteLine("In Mouse Up");                   
34ExpandedBlockEnd.gif      }

35 None.gif

总的来说,这样可以实现要求但是比较麻烦,如果大家有更好的办法,请留言告知我。

 

转载于:https://www.cnblogs.com/Zeus/archive/2005/12/12/295654.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值