如何选择无键行
本文关键字:选择 何选择 | 更新日期: 2023-09-27 18:00:26
有很多方法可以通过编程方式选择行,例如,如果我们知道行索引,或者如果我们知道类似主键的列(包含唯一值的列)。
现在,当我创建自定义控件时,我想知道是否有其他方法可以使用其他方法选择行?
假设我使用名为BackupRow的变量备份每个OnSelectionChanged事件中的选定记录。
然后,当我使用列标题点击对数据进行排序时,在OnSorted中,我想使用BackupRow选择网格。
这样的事情可能发生吗?
谢谢。
没有其他方法。。为了解决你的问题,你可以。
备份索引(在整数列表或数组中),无需备份完整的行。。如果你真的需要,你也可以这样做。但无论如何都需要备份索引。。并根据这些(备份)索引
如果您的数据计数从未改变,并且您可以确切地知道排序算法是可能的,但不信任真实值。。
作为一个伪示例:您有a-B-C-D行,当前为B
如果行按升序排序(A到Z或0到100),然后按降序排序(Z到A或100到0),则其简单如下:假设你,总行数=45;上行排序的当前行索引=30;
排序descendant();
您当前的新索引=(总行-升序排序的行索引)-1;//-1用于索引[0]校正
您当前的新指数=45-30-1;您当前的新指数=14;
还有一种替代方式:
实现你自己的排序算法并创建一个委托/指针-我无法想象哪一个现在会更好-
然后,当每次排序操作都调查所选行并再次选择时。。
但正如我所说,这些都是不可靠的方式。。没有人喜欢/建议。。
另一种观点:
你的问题我不清楚。这个意见是为了澄清可能被误解的地方。。
如果您希望"当用户选择一行或从列值中排序时,完整的行单元格会自动突出显示,并显示为"已选择"
然后它在datagridview的SelectionMode属性下。。
dataGridView1.SelectionMode = FullRowSelect;