如何同时选择DataGrid的多行
主要代码如下:
1
ArrayList ArrayListSelectedRow = new ArrayList();
2
private void DataGrid1_CurrentCellChanged(object sender, EventArgs e)
3
{
4
int cri = DataGrid1.CurrentRowIndex;
5
DataGrid1.Select(cri);
6
Console.WriteLine("In Cell Changed");
7
DataGrid1_Click( sender, e);
8
}
9
private void DataGrid1_Click(object sender, EventArgs e)
10
{
11
int cri = DataGrid1.CurrentRowIndex;
12
DataGrid1.Select(cri);
13
Console.WriteLine("In Click");
14
}
15
private void DataGrid1_MouseUp(object sender, MouseEventArgs e)
16
{
17
int cri = DataGrid1.CurrentRowIndex;
18
if(ArrayListSelectedRow.Contains(cri))
19
{
20
DataGrid1.UnSelect(cri);
21
ArrayListSelectedRow.Remove(cri);
22
}
23
else
24
{
25
DataGrid1.Select(cri);
26
27
ArrayListSelectedRow.Add(cri);
28
}
29
for (int i = 0; i < ArrayListSelectedRow.Count; i++)
30
{
31
DataGrid1.Select(int.Parse(ArrayListSelectedRow [i].ToString()));
32
}
33
Console.WriteLine("In Mouse Up");
34
}
35
ArrayList ArrayListSelectedRow = new ArrayList();2
private void DataGrid1_CurrentCellChanged(object sender, EventArgs e)3

{4
int cri = DataGrid1.CurrentRowIndex;5
DataGrid1.Select(cri);6
Console.WriteLine("In Cell Changed");7
DataGrid1_Click( sender, e);8
}9
private void DataGrid1_Click(object sender, EventArgs e)10

{11
int cri = DataGrid1.CurrentRowIndex;12
DataGrid1.Select(cri);13
Console.WriteLine("In Click");14
}15
private void DataGrid1_MouseUp(object sender, MouseEventArgs e)16

{17
int cri = DataGrid1.CurrentRowIndex;18
if(ArrayListSelectedRow.Contains(cri))19

{20
DataGrid1.UnSelect(cri);21
ArrayListSelectedRow.Remove(cri);22
} 23
else24

{25
DataGrid1.Select(cri);26

27
ArrayListSelectedRow.Add(cri);28
} 29
for (int i = 0; i < ArrayListSelectedRow.Count; i++)30

{31
DataGrid1.Select(int.Parse(ArrayListSelectedRow [i].ToString()));32
}33
Console.WriteLine("In Mouse Up"); 34
}35

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