actua como un experto en c# windows forms, quiero q me hagas un crud desde 0 sobre articulos (codigo, descripcion, marca, precio, stock) quiero en lo posible que sea td en datagridview, por el momento no quiero conbas de datos, exlicame el codigo paso a paso q sea funcionale y q yo al ejecutar el crud funcione correctamente
¡Claro! Vamos a crear un CRUD básico en C# utilizando Windows Forms para gestionar artículos con los campos que mencionaste: código, descripción, marca, precio y stock. Este ejemplo no utilizará una base de datos, sino que almacenará los datos en una lista en memoria.
CRUDArticulos
.Abre el formulario principal (Form1
).
Agrega los siguientes controles desde el cuadro de herramientas:
Organiza los controles en el formulario. Por ejemplo:
Agrega una nueva clase llamada Articulo.cs
en tu proyecto:
public class Articulo
{
public string Codigo { get; set; }
public string Descripcion { get; set; }
public string Marca { get; set; }
public decimal Precio { get; set; }
public int Stock { get; set; }
}
Form1.cs
Ahora, vamos a implementar la lógica del CRUD en el formulario. Primero, declara una lista para almacenar los artículos y un método para actualizar el DataGridView.
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace CRUDArticulos
{
public partial class Form1 : Form
{
private List<Articulo> articulos = new List<Articulo>();
public Form1()
{
InitializeComponent();
ActualizarDataGridView();
}
private void ActualizarDataGridView()
{
dgvArticulos.DataSource = null;
dgvArticulos.DataSource = articulos;
}
}
}
Ahora, implementaremos las operaciones de agregar, editar, eliminar y limpiar.
private void btnAgregar_Click(object sender, EventArgs e)
{
var articulo = new Articulo
{
Codigo = txtCodigo.Text,
Descripcion = txtDescripcion.Text,
Marca = txtMarca.Text,
Precio = decimal.Parse(txtPrecio.Text),
Stock = int.Parse(txtStock.Text)
};
articulos.Add(articulo);
ActualizarDataGridView();
LimpiarCampos();
}
private void btnEditar_Click(object sender, EventArgs e)
{
if (dgvArticulos.SelectedRows.Count > 0)
{
var selectedRow = dgvArticulos.SelectedRows[0];
var articulo = articulos[selectedRow.Index];
articulo.Codigo = txtCodigo.Text;
articulo.Descripcion = txtDescripcion.Text;
articulo.Marca = txtMarca.Text;
articulo.Precio = decimal.Parse(txtPrecio.Text);
articulo.Stock = int.Parse(txtStock.Text);
ActualizarDataGridView();
LimpiarCampos();
}
}
private void btnEliminar_Click(object sender, EventArgs e)
{
if (dgvArticulos.SelectedRows.Count > 0)
{
var selectedRow = dgvArticulos.SelectedRows[0];
articulos.RemoveAt(selectedRow.Index);
ActualizarDataGridView();
LimpiarCampos();
}
}
private void LimpiarCampos()
{
txtCodigo.Clear();
txtDescripcion.Clear();
txtMarca.Clear();
txtPrecio.Clear();
txtStock.Clear();
}
Para que al seleccionar un artículo en el DataGridView se carguen los datos en los TextBox, agrega el siguiente evento:
private void dgvArticulos_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
var selectedRow = dgvArticulos.Rows[e.RowIndex];
txtCodigo.Text = selectedRow.Cells["Codigo"].Value.ToString();
txtDescripcion.Text = selectedRow.Cells["Descripcion"].Value.ToString();
txtMarca.Text = selectedRow.Cells["Marca"].Value.ToString();
txtPrecio.Text = selectedRow.Cells["Precio"].Value.ToString();
txtStock.Text = selectedRow.Cells["Stock"].Value.ToString();
}
}
Asegúrate de conectar los eventos de los botones a sus respectivos métodos en el constructor del formulario:
public Form1()
{
InitializeComponent();
ActualizarDataGridView();
btnAgregar.Click += btnAgregar_Click;
btnEditar.Click += btnEditar_Click;
btnEliminar.Click += btnEliminar_Click;
dgvArticulos.CellClick += dgvArticulos_CellClick;
}
Ahora puedes ejecutar la aplicación. Deberías poder agregar, editar y eliminar artículos, y ver los cambios reflejados en el DataGridView.
Hemos creado un CRUD básico en C# Windows Forms para gestionar artículos. La aplicación permite agregar, editar y eliminar artículos, y muestra los datos en un DataGridView. Recuerda que este ejemplo no utiliza una base de datos, por lo que los datos se perderán al cerrar la aplicación. Para un sistema más robusto, considera integrar una base de datos en