我正在使用Infragistics UltraWinGrid呈现一些数据。我需要一些Excel复制/粘贴功能。这很简单。确定数据网格中多个选定单元格的形状
我想要做的就是确定选择的形状,并确保它的相邻单元的矩形。如果不是,则会显示错误(因为粘贴所述数据只会导致错误)。
然后我需要检测所有的边界边缘单元格,这样我就可以在单元格ala Excel中放置一个“你已经复制了这个”边框。
我希望通过比较Point结构或类似的规定列表来实现这一点。
为了说明问题更好,这里有一些图片:
1.这是罚款,看到边缘细胞(杜)
]
2.这不起作用,我试图复制太多,显示错误
3.用户还没有现在,这是不会工作的经验教训。你甚至可以看到我从哪里抄袭了“错误”的单元格。
我有一个点和单元格字典,准备工作。有任何想法吗? C#/ VB很好。
更新: 这可能有帮助吗?
以第二个图:
0,0 1,0 2,0
0,1 1,1 2,1
0,2 1,2 2,2
0,3 1,3 2,3
1,4 <<< wrong
谢谢,汤姆
另外,我认为问题的一部分是,我不知道矩形边界是在什么位置... – Tom
为了确保我理解:所以你想在从Excel中粘贴选择之前检查这个形状进入电网?并且是允许有孔的一系列单元格? –
@GertArnold是的,但不是Excel,它将成为我自己的DataGrid控件。今天我写了一个枚举选定单元格的小算法并生成一个点列表,然后将它们翻译为零(例如{1,2} {1,3}变为{0,1} {0,2}等等),这是一个开始。事实上,从这里我可以写出实际的复制/粘贴功能。我使用LINQ GroupBy()在X和Y坐标上分组,从而产生行数和列数('cells.GroupBy(Function(x)x.Row).Count()')。最后我写了一些扩展粘贴区域的内容,这些内容是基于复制的内容进行的,因此正在取得进展! – Tom