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....
 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);
        }
			
			
			
				Hola.
El algoritmo es correcto y funciona. Probablemente el fallo lo tengas en esta instrucción:
Citarif (dgv.Columns[dgv.CurrentCell.ColumnIndex].Name == "cantidadContada")
...Fíjate bien en que ahí estás evaluando la propiedad 
Name de la columna (por defecto: 'Column1', 'Column2', etc), no la propiedad 
DataPropertyName.
Un modo rápido de resolverlo:
if (dgv.Columns[dgv.CurrentCell.ColumnIndex].DataPropertyName == "cantidadContada")Saludos.