C#版MultiSelected DataGrid

海tong22

海tong22

2016-01-29 13:17

C#版MultiSelected DataGrid,C#版MultiSelected DataGrid
using System;using System.Drawing;using System.Collections;using System.Windows.Forms;namespace cSharpDataGrid{ public class MyDataGrid : System.Windows.Forms.DataGrid { private ArrayList m=new ArrayList(); Array MultiSelectedIndex { get { return this.m.ToArray(typeof (int)); } } protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e) { Console.WriteLine("Datagrid has hit"); Point _posDg = new Point(e.X,e.Y); System.Windows.Forms.DataGrid.HitTestInfo _hitDg =base.HitTest(_posDg); if (HitDataGrid(_hitDg)) { base.OnMouseDown(e); } base.OnMouseDown (e); } private bool HitDataGrid(DataGrid.HitTestInfo Hit) { try { switch (MyDataGrid.ModifierKeys) { case Keys.Control: if (Hit.Row>-1) { if (m.IndexOf(Hit.Row)>-1) { m.Remove(Hit.Row); this.UnSelect(Hit.Row); } else { m.Add(Hit.Row); this.Select(Hit.Row); } } return false; case Keys.Shift: if (Hit.Row>-1) { foreach (int intIndex in m) { this.UnSelect(intIndex); } m.Clear(); int _count; int _intStep; if (Hit.Row>this.CurrentRowIndex) { _intStep=1; } else { _intStep=-1; } for (_count=this.CurrentRowIndex ;_count==Hit.Row;_count+=_intStep) { m.Add(_count); this.Select(_count); } } return false; default: foreach (int _intIndex in m) { this.UnSelect(_intIndex); } m.Clear(); if (Hit.Type==DataGrid.HitTestType.RowHeader) { m.Add(Hit.Row); } return true; } } catch(System.Exception ex) { throw ex; } } }}
展开更多 50%)
分享

猜你喜欢

C#版MultiSelected DataGrid

电脑网络
C#版MultiSelected DataGrid

C#中实现DataGrid双向排序

编程语言 网络编程
C#中实现DataGrid双向排序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

展现C#(1):C#简介

ASP
展现C#(1):C#简介

掌握 C#

电脑网络
掌握 C#

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

C#简介

编程语言 网络编程
C#简介

Beginner with C#

编程语言 网络编程
Beginner with C#

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

设计模式之Facade——家庭篇

设计模式之Facade——家庭篇

第四节--构造函数和析构函数 -- Classes and Objects in PHP5 [4

第四节--构造函数和析构函数 -- Classes and Objects in PHP5 [4
下拉加载更多内容 ↓