dgvConfig.DataSource = CreateTable();dgvConfig.Columns["编号"].ReadOnly = true; //只读dgvConfig.AllowUserToAddRows = false; //不允许添加新行dgvConfig.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(dgvConfig_EditingControlShowing);
void dgvConfig_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e){DataGridViewTextBoxEditingControl cotrol = (DataGridViewTextBoxEditingControl)e.Control;cotrol.KeyPress += new KeyPressEventHandler(Edit_Value);cotrol.MaxLength = 5;}
//DataGridView 编辑项输入protected void Edit_Value(object sender, KeyPressEventArgs e){DataGridViewTextBoxEditingControl control = (DataGridViewTextBoxEditingControl)sender;if (!Char.IsNumber(e.KeyChar) && !Char.IsPunctuation(e.KeyChar) && !Char.IsControl(e.KeyChar)){e.Handled = true;//消除不合适字符 }else if (Char.IsPunctuation(e.KeyChar)){if (e.KeyChar != '.' || control.Text.Length == 0)//小数点 {e.Handled = true;}if (control.Text.LastIndexOf('.') != -1){e.Handled = true;}}}
#region 输入//允许输入小数public static void TextBox_Double_KeyPress(object sender, KeyPressEventArgs e){TextBox tb = (TextBox)sender;if (tb == null){e.Handled = true;//消除不合适字符return;}if (!Char.IsNumber(e.KeyChar) && !Char.IsPunctuation(e.KeyChar) && !Char.IsControl(e.KeyChar)){e.Handled = true;//消除不合适字符 }else if (Char.IsPunctuation(e.KeyChar)){if (e.KeyChar != '.' || tb.Text.Length == 0)//小数点 {e.Handled = true;}if (tb.Text.LastIndexOf('.') != -1){e.Handled = true;}}}//只能输入整数public static void Number_KeyPress(object sender, KeyPressEventArgs e){if (e.KeyChar != '\b')//这是允许输入退格键 {if ((e.KeyChar < '0') || (e.KeyChar > '9'))//这是允许输入0-9数字 {e.Handled = true;}}}//DataGridView 编辑项输入public static void DataGridView_Edit_Value(object sender, KeyPressEventArgs e){DataGridViewTextBoxEditingControl control = (DataGridViewTextBoxEditingControl)sender;if (!Char.IsNumber(e.KeyChar) && !Char.IsPunctuation(e.KeyChar) && !Char.IsControl(e.KeyChar)){e.Handled = true;//消除不合适字符 }else if (Char.IsPunctuation(e.KeyChar)){if (e.KeyChar != '.' || control.Text.Length == 0)//小数点 {e.Handled = true;}if (control.Text.LastIndexOf('.') != -1){e.Handled = true;}}}#endregion