DataGridView 设置某个列为只能为数字
public DataGridViewTextBoxEditingControl CellEdit = null;
 int idx = 1;
        private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (this.dataGridView1.CurrentCellAddress.X == idx)
            {
                CellEdit = (DataGridViewTextBoxEditingControl)e.Control;
                CellEdit.SelectAll();
                CellEdit.KeyPress += Cells_KeyPress; //绑定事件
            }
        }
        private void Cells_KeyPress(object sender, KeyPressEventArgs e) //自定义事件
        {
            if (this.dataGridView1.CurrentCellAddress.X == idx)
            {
                if (e.KeyChar == 46)
                { 
                    e.Handled = false;
                    return;
                }
                if (!(e.KeyChar >= '0' && e.KeyChar <= '9')) e.Handled = true;
                if (e.KeyChar == '\b') e.Handled = false;
            }
        }
        private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
        {
            if (dataGridView1.Rows[e.RowIndex].IsNewRow) return;
            decimal dci;
            if (e.ColumnIndex == idx)
            {
                if (e.FormattedValue != null && e.FormattedValue.ToString().Length > 0)
                {
                    if (!decimal.TryParse(e.FormattedValue.ToString(), out dci) || dci < 0)
                    {
                        e.Cancel = true;
                        MessageBox.Show("请输入数字或小数", "提示",
                            MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
        }
 
                    
                     
                    
                 
                    
                 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号