using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace Listas
{
  public partial class MainForm : Form
  {
    private struct tpersona
    {
      public string nombre;
      public string teléfono;
    }

    private static int nElementos = 100;
    private tpersona[] agenda = new tpersona[nElementos];
    private int i = 0;
    
    public MainForm()
    {
      //
      // The InitializeComponent() call is required for Windows Forms designer support.
      //
      InitializeComponent();
      
      //
      // TODO: Add constructor code after the InitializeComponent() call.
      //
    }
    
    void BtAñadirClick(object sender, EventArgs e)
    {
      if (i == nElementos) return;
      if (ctNombre.Text.Length == 0 ||
          ctTfno.Text.Length == 0)
      {
        MessageBox.Show("Datos no correctos");
        return;
      }
      // Añadir el nombre y el teléfono a la matriz
      agenda[i].nombre = ctNombre.Text;
      agenda[i].teléfono = ctTfno.Text;
      // Añadir el nombre a la lista
      lsNombres.Items.Add(ctNombre.Text);
      i++; // índice del siguiente elemento vacío
    }
    
    void LsNombresSelectedIndexChanged(object sender, EventArgs e)
    {
      int indSelec = lsNombres.SelectedIndex;
      if (indSelec < 0) return;
      // Mostrar en las cajas de texto los datos
      // correspondientes al elemento seleccionado
      ctNombre.Text = agenda[indSelec].nombre;
      ctTfno.Text = agenda[indSelec].teléfono;
    }
    
    void BtModificarClick(object sender, EventArgs e)
    {
      int indSelec = lsNombres.SelectedIndex;
      if (indSelec < 0) return;
      // Modificar los datos correspondientes
      // al elemento seleccionado
      agenda[indSelec].nombre = ctNombre.Text;
      agenda[indSelec].teléfono = ctTfno.Text;
      // Modificar el nombre en la lista
      lsNombres.Items[indSelec] = ctNombre.Text;
    }
  }
}
