es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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ó.

Tags:  , , ,

Answer

  1. Avatar for 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 usamos public static string[] Row; para hacerla accesible en otros formularios.

    Para asignar el valor de row a Row, usamos Row = row; en Form2.

    Para acceder a la variable Row en Form1, usamos string[] ROW = Form2.Row;. Sin embargo, si queremos almacenar todos los valores de Row en ROW, necesitamos crear una nueva matriz de cadenas y copiar manualmente cada elemento. No podemos simplemente asignar toda la matriz a ROW.

    Para copiar los valores, utilizamos el siguiente código:

    int Index = 1;
    
    string[] ROW = new string[10];
    ROW[Index] = Form2.Row[0];
    
    Index++;
    

    Ten en cuenta que necesitamos usar Form2.Row[0] para acceder al primer elemento de la matriz Row. No podemos usar Form2.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.

Comments are closed.