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 != '')//这是允许输入退格键 { 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