Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Cell provided already belongs to a row. This operation is not valid. E...
martedì 25 marzo 2008 - 09.18
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
mircoso
Profilo
| Newbie
30
messaggi | Data Invio:
mar 25 mar 2008 - 09:18
Ciao a Tutti.
questa volta ho un'altro problema stano che non riesco a capire.
Quando provo ad assegnare ad una cella una DataGridViewComboBoxCell mi da l'errore:
"Cell provided already belongs to a row. This operation is not valid."
Per capire meglio la situazione vi spiego quello che faccio.
Ho due griglie, la prima carico dei template e quando scelgo una riga mi deve caricare nella seconda il modello scelto che non sono altro che dei valori.
Finche avevo sono dei valori fissi ed avevo una DataGridViewTextBoxColumn era tutto ok, ma da quando mi hanno chiesto che a seconda della colonna scelta dovrei caricare un DataGridViewComboBoxCell con dei valori o una DataGridViewTextBoxCell per lasciare l'inserimento libero ho dei problei.
La cosa strana è che succede al 3 giro, ovvero dopo la scelta del 2 templete.
allego il codice che uso:
With DataGridView1
Dim Valore
Valore = Nothing
If Mid(.Rows(Row).Cells("NomeCampo").Value, 1, 1) = "1" Then
'Questo è un mio controllo per sapere che colonna devo unsare
Dim temp As String = Mid(.Rows(Row).Cells("NomeCampo").Value, 3, InStr(.Rows(Row).Cells("NomeCampo").Value, "§") - 3)
Dim Col As Integer = Val(temp)
Dim b As New DataGridViewComboBoxCell
b = Colonne(Col)
b.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing
If Not CaricaVuoto Then Valore = .Rows(Row).Cells("Valore").Value
'Quan va in ERRORE
.Rows(Row).Cells("Valore") = b
If Err.Number > 0 Then
' "Cell provided already belongs to a row. This operation is not valid."
MsgBox(Err.Number.ToString & " " & Err.Description.ToString)
End If
b.Dispose()
b = Nothing
'Se richiesto carico il valore già in cella
If Not CaricaVuoto Then
Dim Tipo As String = .Rows(Row).Cells("Valore").ValueType.Name
If Not IsNothing(Valore) Then
Select Case Tipo.ToLower
Case "byte"
Valore = System.Convert.ToByte(Valore)
Case "int32"
Valore = System.Convert.ToInt32(Valore)
Case Else
Valore = Nothing
End Select
End If
.Rows(Row).Cells("Valore").Value = Valore
End If
Else
Dim b As New DataGridViewTextBoxCell
Valore = .Rows(Row).Cells("Valore").Value
.Rows(Row).Cells("Valore") = b
b.Dispose()
b = Nothing
If Not CaricaVuoto Then .Rows(Row).Cells("Valore").Value = Valore
End If
End With
Grazie a tutti per l'aiuto che mi darete
Mirco
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
mar 25 mar 2008 - 11:34
Ciao,
Questo non va bene: b = Colonne(Col)
Dovresti clonare quella colonna, e non utilizzarla per poi cambiargli le proprietà. Devi per forza utilizzare l'altra colonna? Non puoi creartene una nuova collegandoci lo stesso datasource?
http://blogs.dotnethell.it/Regulator/
mircoso
Profilo
| Newbie
30
messaggi | Data Invio:
mer 26 mar 2008 - 11:03
Ciao,
si sono costretto e comunque proprio ora ho risolto con un colonne(col).clone
:-)
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
mer 26 mar 2008 - 11:15
Bene
http://blogs.dotnethell.it/Regulator/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !