buenas noches gente del foro tanto tiempo sin pasarme por aca....verán tengo un datagrid en el cual hago una consulta y la muestro en el mismo....pero deseo activar una columna (cantidadContada) solamente para que se puedan ingresar datos de tipo numérico....como puedo lograrlo? escribi este código pero no lo logro muchas grax d antemano....
Código (csharp) [Seleccionar]
try
{
conectar.Open();
string query = "SELECT * FROM detalle_inventario WHERE inventario=@inventario";
SqlCommand consulta = new SqlCommand(query, conectar);
consulta.Parameters.AddWithValue("@inventario", inventario);
SqlDataAdapter adaptador = new SqlDataAdapter(consulta);
DataTable datos = new DataTable();
adaptador.Fill(datos);
dgv.AutoGenerateColumns = false;
dgv.DataSource = datos;
dgv.Columns[0].DataPropertyName = "ubicacion";
dgv.Columns[1].DataPropertyName = "medicamento";
dgv.Columns[2].DataPropertyName = "lote";
dgv.Columns[3].DataPropertyName = "vto";
dgv.Columns[4].DataPropertyName = "cantidadContada";
activarControles();
}
catch (SqlException ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conectar.Close();
}
private void dgv_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
var dgv = (sender as DataGridView);
if (dgv.Columns[dgv.CurrentCell.ColumnIndex].Name == "cantidadContada")
{
TextBox cell = (TextBox)e.Control;
cell.KeyPress -= new KeyPressEventHandler(this.Cell_KeyPress);
cell.KeyPress += new KeyPressEventHandler(this.Cell_KeyPress);
}
}
private void Cell_KeyPress(object sender, KeyPressEventArgs e)
{
var cell = (TextBox)sender;
e.Handled = !Char.IsNumber(e.KeyChar) && e.KeyChar != Convert.ToChar(Keys.Back);
}