ok entonces manos a la obra te voy a ir ayudando poco a poco...por q tengo poco tiempo para internet ok??
la busqueda del artículo la puedes hacer en el evento Cell_Validating()...puedes hacer algo como lo siguiente
private void dgvDetalleFactura_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
//para que realice la acción de búsqueda únicamente cuando ingrese un dato en la columna "colCodigo
if (dgvDetalleFactura.Columns[e.ColumnIndex].Name == "colCodigo")
{
//si lo q ingreso en la celda no son espacios vacíos
if (e.FormattedValue.ToString().Trim() != string.Empty)
{
string codigo = e.FormattedValue.ToString();
//con esta linea llamo a la clase q implementa la busqueda del articulo por codigo...
//la funcion devuelve un datatable con el producto encontrado
DataTable dtproducto=LogicaProducto.BuscarProducto(codigo);//si encontró un producto, el datatable debe tener en su propiedad count un numero mayor a 0if (dtproducto.Rows.Count > 0)
{
//se asigna los valores del datatable encontrado a las columnas correspondientes
dgvDetalleFactura["colArticulo", e.RowIndex].Value = dtproducto.Rows[0]["descripcion_PRODUCTO"].ToString();
dgvDetalleFactura[
"colmarca", e.RowIndex].Value = dtproducto.Rows[0]["marca"].ToString();dgvDetalleFactura["colPrecioCompra", e.RowIndex].Value = dtproducto.Rows[0]["precio_compra_PRODUCTO"].ToString();
precio_compra_items =
Convert.ToInt16(dgvDetalleFactura["colPrecioCompra", e.RowIndex].Value.ToString());dgvDetalleFactura["colPrecioVenta1", e.RowIndex].Value = dtproducto.Rows[0]["precio_venta1_PRODUCTO"].ToString();
dgvDetalleFactura[
"colPrecioVenta2", e.RowIndex].Value = dtproducto.Rows[0]["precio_venta2_PRODUCTO"].ToString();dgvDetalleFactura["colStock", e.RowIndex].Value = dtproducto.Rows[0]["stock"].ToString();
}
else
{
MessageBox.Show("No Existe el Producto");
//con esto le indico al grid q no abandone la celda hasta q no ingrese un codigo válido o presione escape
e.Cancel = true;
}
}
}
esto es el código básico para la búsqueda y ubicación de un producto en el grid...aqui claro hacen falta las validaciones para las celdas del grid..eso si lo necesitas te lo explico en otro momento....espero q esto te sirva...alguna duda me la haces saber...