0

Estoy haciendo una app en Windows Forms con C#. Una parte tiene dos ComboBox, una "Patches", y otra "Champions", con sus botones de carga respectivos. Mi idea es que cuando se le de al botón de carga de Patch, se carguen todos los Champions de ese parche en su ComboBox, para luego seleccionar el Champion, y seguir con el resto de la app. Pero cuando le doy a cargar Champions, me da este error:

Error message


Este es el código del botón:

        {
           
            string actualPatch = comboPatches.SelectedValue.ToString();
            label3.Text = actualPatch;
            string[] champs = Importer.readTxt(Importer.fileroute(actualPatch + "/champs.txt"));
            foreach (string champ in champs)
            {                                       //Esto añade todos los parches a la comboBox
                comboPatches.Items.Add(champ);
            }

        }

Importer.readTxT es una función de una clase mía, que lee archivos en la carpeta de la aplicación.

He buscado soluciones en internet, y mientras que dan algunas soluciones, no he entendido nada, porque acabo de empezar a programar, así que si alguien puede ayudar explicándolo de forma sencilla, lo agradecería.

EDIT:El "Texto de la excepción" dentro del mensaje de error es:

System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.
   en WindowsFormsApp1.Form1.btnLoadPatch_Click(Object sender, EventArgs e) en C:\Users\(Privado)\WindowsFormsApp1\Form1.cs:línea 39
   en System.Windows.Forms.Control.OnClick(EventArgs e)
   en System.Windows.Forms.Button.OnClick(EventArgs e)
   en System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   en System.Windows.Forms.Control.WndProc(Message& m)
   en System.Windows.Forms.ButtonBase.WndProc(Message& m)
   en System.Windows.Forms.Button.WndProc(Message& m)
   en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Zseb
  • 25
  • 5
  • Coloca todo el código necesario para reproducir tu escenario, de ese modo es más probable que se obtenga una respuesta que solucione tu caso :D – fredyfx Jan 21 '22 at 16:31
  • La clase importer la instancias o es estatica? – Japv Jan 21 '22 at 16:52
  • en que sentencia exactamente ocurre el error? – Japv Jan 21 '22 at 16:52
  • @fredyfx El código sería demasiado largo para mandar en comentario, pero la clase Importer no afecta demasiado, y el resto del código del WinForm es principalmente: `private void Form1_Load(object sender, EventArgs e) { string[] patches = Importer.readTxt("patches.txt"); //Todos los parches foreach (string patch in patches) { //Esto añade todos los parches a la comboBox comboPatches.Items.Add(patch); } }` – Zseb Jan 21 '22 at 16:54
  • No pongas comboPatches.SelectedValue, pon comboPatches.Text – Japv Jan 21 '22 at 16:54
  • @Japv La clase Importer es instancias, aunque cuando solucione esto lo debería cambiar. He editado el texto para añadir el mensaje de error. Lo de poner comboPatches.Text lo voy a probar ahora. – Zseb Jan 21 '22 at 17:02
  • @Japv Vale gracias, poniendo comboPatches.Text funcionó, gracias! – Zseb Jan 21 '22 at 17:07
  • Sería bueno si se tomarán unos minutos en ver si alguien ya preguntó lo mismo. La forma de arreglar errores es sabiendo leerlos. Este es un error muy frecuente. Sucede cuando una variable no tiene ninguna referencia a una instancia o está en `null` y se intenta usar una variable o una función del objeto. Para solucionarlo tienes que verificar que la variable no sea `null` antes de intentar algo. Alternativamente, puedes usar el operador `?.` (`null conditional`). – Mateo Jan 21 '22 at 19:08
  • Con colocar todo el código necesario para reproducir tu escenario me refería a que hagas click en el botón `Editar` que se encuentra al pie de tu pregunta. Saludos. – fredyfx Jan 22 '22 at 00:19

0 Answers0