2015-02-22 3 views
0

У меня есть usercontrol, который наследует winforms datagirdviewcontrol & здесь Я пытаюсь клонировать ячейку со своими значениями & хранить ее в переменной. Я клонировал ячейку с ее значением, используя следующую функцию.Cloning datagrid view cell

Private Function CloneCellWithValue(ByVal cell As DataGridViewCell) As DataGridViewCell 
    Console.WriteLine("Original cell @ row : " & cell.RowIndex & " column : " & cell.ColumnIndex & " value : " & cell.Value) 
    CloneCellWithValue = cell.Clone() 
    Console.WriteLine("Cloned cell @ row : " & CloneCellWithValue.RowIndex & " column : " & CloneCellWithValue.ColumnIndex & " value : " & CloneCellWithValue.Value) 
    CloneCellWithValue.Value = cell.Value 
End Function 

Передаю ячейку, которая должна быть клонирована для этой функции, однако ячейка не клонируется. Я попытался зарегистрировать свойства, такие как индекс строки, индекс столбца и значение клонированной ячейки, чтобы убедиться, что ячейка была клонирована правильно.

И дисплей консоли.

Original cell @ row : 1 column : 1 value : 
Cloned cell @ row : -1 column : -1 value : 

, что означает, что ячейка не была клонирована должным образом. Мне нужна помощь в клонировании ячейки с ее свойствами, включая ее ценность.

ответ

2

System.Windows.Forms.DataGridViewCell.Clone() создает точную копию ячейки, но это не значит, что эта ячейка будет иметь один и тот же индекс строки или столбца. Это просто означает, что она будет иметь тот же формат, и т.д .:

https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcell.clone%28v=vs.110%29.aspx

Примечание: Это не клон значение ячейки. Вам придется скопировать значение из исходной ячейки после ее клонирования. Кроме того, никакие две ячейки не могут занимать одно и то же место в сетке, поэтому было бы невозможно, чтобы он имел одинаковый индекс строки и столбца.