如何选择没有键的行

时间:2014-04-28 10:32:38

标签: c# winforms datagridview

有许多方法可以编程方式选择行,例如如果我们知道行索引,或者我们知道类似主键的列(包含唯一值的列)。

现在,当我创建自定义控件时,我想知道是否有另一种方法可以使用其他方式选择行?

假设我使用名为BackupRow的变量备份每个OnSelectionChanged事件中的选定记录。

然后当我使用columnheader click对数据进行排序时,在OnSorted中我想使用BackupRow选择网格。

这样的事情可能吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

没有其他方法..为了解决您的问题,您可以。

备份索引(在整数列表或数组中),无需备份完整的行..如果您确实需要,也可以执行此操作。但是你需要备份索引任何情况..并在那些(备份)索引的基础上选择行形式排序网格

答案 1 :(得分:0)

如果您的数据计数永远不会改变,并且您可以确切地知道排序算法可能但不能信任真正的值..

作为一个伪示例:你有行A-B-C-D,当前是B ..

如果行按升序排列(A到Z或0到100),然后你将后代(Z到A或100到0)排序,那么它只是: 假设你的, 总行数= 45; 上升排序的当前行索引= 30;

sort descendant();

您当前的新索引=(总行 - 上升排序行索引)-1; // - 1用于索引[0]校正

您当前的新指数= 45-30 -1; 您当前的新索引= 14;

另一种方式:

实现你自己的排序算法并创建一个委托/指针 - 我无法想象现在哪个更好 -

然后每个排序操作调查您选择的行并再次选择..

但正如我所说,这些都是不可信任的方式......没有人从不喜欢/暗示......

另一个意见:

你的问题对我来说并不清楚......这种观点是为了更清楚可能被误解的..

如果您需要"当用户选择一行或从列值中进行排序时,完整的行单元格会自动突出显示 - 显示给用户选择"

然后是它在datagridview的SelectionMode属性..

dataGridView1.SelectionMode = FullRowSelect;