我正在使用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