datagridview的行列选择

取得在DataGridView中被选择的列、行、单元格时,可以使用DataGridView对象的SelectedColumns、SelectedRows、SelectedCells属性。

[VB.NET] '表示被选择的单元格 Console.WriteLine("单元格被选择") For Each c As DataGridViewCell In DataGridView1.SelectedCells Console.WriteLine("{0}, {1}", c.ColumnIndex, c.RowIndex) Next c '表示被选择的行 Console.WriteLine("行被选择") For Each r As DataGridViewRow In DataGridView1.SelectedRows Console.WriteLine(r.Index) Next r '表示被选择的列 Console.WriteLine("列被选择") For Each c As DataGridViewColumn In DataGridView1.SelectedColumns Console.WriteLine(c.Index) Next c

[C#] //表示被选择的单元格 Console.WriteLine("单元格被选择"); foreach (DataGridViewCell c in DataGridView1.SelectedCells) { Console.WriteLine("{0}, {1}", c.ColumnIndex, c.RowIndex); } //表示被选择的行 Console.WriteLine("行被选择"); foreach (DataGridViewRow r in DataGridView1.SelectedRows) { Console.WriteLine(r.Index); } //表示被选择的列 Console.WriteLine("列被选择"); foreach (DataGridViewColumn c in DataGridView1.SelectedColumns) { Console.WriteLine(c.Index); }

Performance优化

选择范围很广时,属性的Performance就会变得反应迟缓。

如果只想取得被选择单元格的数字时,可以不使用「DataGridView1.SelectedCells.Count」取得了,而使用DataGridView.GetCellCount方法会效率更高的。同样,取得被选择列的数字时使用GetColumnCount方法,行的数字时使用GetRowCount方法。

[VB.NET] '被选择单元格的数 Console.WriteLine( _ DataGridView1.GetCellCount(DataGridViewElementStates.Selected)) '被选择行的数 Console.WriteLine( _ DataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected)) '被选择列的数 Console.WriteLine( _ DataGridView1.Columns.GetColumnCount(DataGridViewElementStates.Selected))

[C#] //被选择单元格的数 Console.WriteLine( DataGridView1.GetCellCount(DataGridViewElementStates.Selected)); //被选择行的数 Console.WriteLine( DataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected)); //被选择列的数 Console.WriteLine( DataGridView1.Columns.GetColumnCount(DataGridViewElementStates.Selected));

检测DataGridView内所有被选择的单元格时,可以使用DataGridView.AreAllCellsSelected方法。

补充:使用AreAllCellsSelected方法,共享行可能会变为非共享行。

选择被指定的列、行、单元格

选择被指定的列、行、单元格时,设定Selected属性为True即可。

[VB.NET] '选择(0, 0)的单元格 DataGridView1(0, 0).Selected = True '选择索引1的行 DataGridView1.Rows(1).Selected = True '选择索引2的列 DataGridView1.Columns(2).Selected = True

[C#] //选择(0, 0)的单元格 DataGridView1[0, 0].Selected = true; //选择索引1的行 DataGridView1.Rows[1].Selected = true; //选择索引2的列 DataGridView1.Columns[2].Selected = true;

补充:选择所有的单元格可以使用DataGridView.SelectAll方法,解除时使用DataGridView.ClearSelection方法。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值