有许多方法可以编程方式选择行,例如如果我们知道行索引,或者我们知道类似主键的列(包含唯一值的列)。
现在,当我创建自定义控件时,我想知道是否有另一种方法可以使用其他方式选择行?
假设我使用名为BackupRow的变量备份每个OnSelectionChanged事件中的选定记录。
然后当我使用columnheader click对数据进行排序时,在OnSorted中我想使用BackupRow选择网格。
这样的事情可能吗?
谢谢。
答案 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;