2010-12-08 4 views
1

ceci est mon code:erreur C2440: « argument »: ne peut pas convertir « System :: Object^» pour « int »

for (q = 0; q < Rows; q++) 
{ 
    for (r = 0; r < Columns; r++) 
    { 
     Array1[q, r] = combo1->Items[r]; 
     Array2[q, r] = combo2->Items[r]; 
    } 
} 

Je veux ajouter des éléments dans des tableaux de boîtes combo mais je reçois l'erreur:

error C2440: 'argument' : cannot convert from 'System::Object ^' to 'int'

c'est le code qui ajoute des éléments dans combo

  for (int m = 0; m < Rows; m++) 
      { 
       array<String^> ^b = Aray1[m]->Split(gcnew array<Char> { ',' }); 
       for each (String ^Column in b) 
       { 
        Combo1->Items->Add(Column); 
       } 
      } 

Répondre

1

en supposant que vous utilisez C++/CLI. Si l'on se base sur l'erreur, il semble que les éléments Array1 soient saisis int et que la zone de liste déroulante contienne des valeurs entourées d'un ObjecT^. Si la valeur est vraiment juste un int être enveloppé dans un Object^ alors vous avez juste besoin de unbox

Array1[q,r] = safe_cast<int>(combo1->Items[r]); 
Array2[q,r] = safe_cast<int>(combo2->Items[r]); 

Cela tombe si le Object^ est emballage en fait un autre type en plus int

+0

maintenant je reçois cette erreur "spécifiée cast n'est pas valide. " avec le code Array1 [q, r] = safe_cast (combo1-> Items [r]); –

+0

@ m, qayyum alors il est probable que les éléments du combo ne soient pas enveloppés dans des valeurs 'int' mais soient d'un type différent qui doit être converti en' int'. Probable une 'chaîne'. Quel est le type des objets dans le combo? – JaredPar

+0

les éléments de type chaîne sont en combo –

Questions connexes