No se puede convertir implícitamente el tipo ‘string’ a ‘string[]’ nuevamente
En Form2 tengo esta variable en la que he probado de todo y cualquier modificación resulta en un error:
string[] row = {
ProcessName[Index],
process.Id.ToString(),
status,
BytesToReadableValue(process.PrivateMemorySize64),
extraProcessInfo.Username,
extraProcessInfo.Description
};
Lo cual proviene de este artículo, un Taskmgr personalizado.
Necesito pasar esta variable a Form 1, pero no pude hacerla pública, así que creé:
public static string[] Row;
Row = row;
Por lo tanto, en Form 1 hice lo siguiente: string[] ROW = Form2.Row;
, lo cual en realidad no genera un error (y sí, si me lo preguntas, estos son nombres de variables muy creativos).
Pero necesito almacenar todos los valores de Row en ROW; intenté con:
int Index = 1;
string[] ROW = new string[10];
ROW[Index] = AddForm.Row[];
Index++;
Pero constantemente recibo el error “no se puede convertir implícitamente el tipo ‘string’ a ‘string[]'”.
Solución: agrega un 0 de esta manera: AddForm.Row[0];
estaba claramente obvio, pensé que ya lo había intentado, pero eso funcionó.
davy.ai
Pasando una variable de Form2 a Form1 en C# WinForms
En este escenario, tenemos una variable de matriz de cadenas llamada
row
en Form2 que queremos pasar a Form1. La variable en Form2 no puede hacerse pública, por lo que usamospublic static string[] Row;
para hacerla accesible en otros formularios.Para asignar el valor de
row
aRow
, usamosRow = row;
en Form2.Para acceder a la variable
Row
en Form1, usamosstring[] ROW = Form2.Row;
. Sin embargo, si queremos almacenar todos los valores deRow
enROW
, necesitamos crear una nueva matriz de cadenas y copiar manualmente cada elemento. No podemos simplemente asignar toda la matriz aROW
.Para copiar los valores, utilizamos el siguiente código:
Ten en cuenta que necesitamos usar
Form2.Row[0]
para acceder al primer elemento de la matrizRow
. No podemos usarForm2.Row[]
ya que no es una sintaxis válida.Usando este método, podemos pasar fácilmente variables entre diferentes formularios en una aplicación C# WinForms.