如何选择无键行

本文关键字:选择 何选择 | 更新日期: 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;