Untitled

 avatar
unknown
csharp
10 months ago
4.6 kB
14
Indexable
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PracticaC_Jesus2025.Session03
{
    public partial class MenuTarea : Form
    {
        public MenuTarea()
        {
            InitializeComponent();
        }

        private void archivoToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {

        }

        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // Application.Exit() es el comando estándar y seguro para terminar la ejecución del programa.
            Application.Exit();
        }

        private void limpiarTodoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // El método .Clear() de la colección 'Items' es la forma directa de eliminar todos los elementos.
            lstPendientes.Items.Clear();
            lstCompletadas.Items.Clear();
        }

        private void btnAgregar_Click(object sender, EventArgs e)
        {
            // Validación: Es una buena práctica asegurarse de que el usuario haya escrito algo.
            if (!string.IsNullOrWhiteSpace(txtNuevaTarea.Text))
            {
                // Si hay texto, lo agregamos a la colección 'Items' del ListBox de pendientes.
                lstPendientes.Items.Add(txtNuevaTarea.Text);
                // Limpiamos el TextBox para que el usuario pueda ingresar una nueva tarea sin borrar la anterior.
                txtNuevaTarea.Clear(); // Es una forma más limpia y corta de escribir txtNuevaTarea.Text = "";
                                       // Opcional pero recomendado: Ponemos el cursor (foco) de nuevo en el TextBox.
                txtNuevaTarea.Focus();
            }
            else
            {
                // Si el usuario no escribió nada, le mostramos un mensaje informativo.
                MessageBox.Show("Por favor, escribe una tarea para poder agregarla.", "Tarea Vacía",
                  MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnCompletar_Click(object sender, EventArgs e)
        {
            // Reto (Validación): Primero, es crucial verificar si el usuario ha seleccionado una tarea.
            // La propiedad 'SelectedItem' contiene el ítem seleccionado. Si no hay selección, es 'null'.
            if (lstPendientes.SelectedItem != null)
            {
                // 1. COPIAR: Obtenemos el texto de la tarea seleccionada y lo guardamos en una variable.
                string tareaSeleccionada = lstPendientes.SelectedItem.ToString();
                // 2. PEGAR: Agregamos la tarea que copiamos a la lista de completadas.
                lstCompletadas.Items.Add(tareaSeleccionada);
                // 3. BORRAR: Eliminamos la tarea de la lista original de pendientes para completar el "movimiento".
                lstPendientes.Items.Remove(tareaSeleccionada);
            }
            else
            {
                // Si no hay nada seleccionado, guiamos al usuario con un mensaje claro.
                MessageBox.Show("Por favor, selecciona una tarea de la lista 'Pendientes' para marcarla como completada.", "Ninguna Tarea Seleccionada", MessageBoxButtons.OK,
                  MessageBoxIcon.Exclamation);
            }
        }

        private void btnPendiente_Click(object sender, EventArgs e)
        {
            // La lógica es idéntica a la anterior, pero simplemente invertimos los ListBox de origen y destino.
            if (lstCompletadas.SelectedItem != null)
            {
                // 1. COPIAR de la lista de completadas.
                string tareaSeleccionada = lstCompletadas.SelectedItem.ToString();
                // 2. PEGAR en la lista de pendientes.
                lstPendientes.Items.Add(tareaSeleccionada);
                // 3. BORRAR de la lista de completadas.
                lstCompletadas.Items.Remove(tareaSeleccionada);
            }
            else
            {
                MessageBox.Show("Por favor, selecciona una tarea de la lista 'Completadas' para devolverla  pendientes.", "Ninguna Tarea Seleccionada", MessageBoxButtons.OK,
                  MessageBoxIcon.Exclamation);
            }
        }

        private void MenuTarea_Load(object sender, EventArgs e)
        {

        }
    }
}
Editor is loading...
Leave a Comment