Untitled
unknown
csharp
9 months ago
4.6 kB
13
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