当前位置:编程学习 > C#/ASP.NET >>

关于Winform中DatagridView控件列的输入问题!!!

我在DatagridView控件中有很多列,其中有几列只允许输入数字,不知道如何控制??

或者如果输入的是字符,当焦点离开该cell格时有提示也可以,如何处理?? --------------------编程问答-------------------- 在cellcontentclick事件中用正则表达式判断是否为数字 --------------------编程问答-------------------- private DataGridViewTextBoxEditingControl EditCell;

void DataGideView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
EditCell = (DataGridViewTextBoxEditingControl)e.Control;
EditCell.SelectAll();
EditCell.KeyPress += new KeyPressEventHandler(Cells_KeyPress);
}

void Cells_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsNumber(e.KeyChar) && !Char.IsPunctuation(e.KeyChar) && !Char.IsControl(e.KeyChar))
{
e.Handled = true;
}
} --------------------编程问答-------------------- 由于datagridview不响应键盘事件,直接控制有些困难,但输入完毕后控制还是可以的,在CellParsing事件中这么写
  private void dataGridView1_CellParsing(object sender, DataGridViewCellParsingEventArgs e)

DataGridView dgv = (DataGridView)sender; if (dgv.Columns[e.ColumnIndex].Name == "要控制的列名")//如果不是一列就继续加条件好了 {
 for (int i = 0; i < e.Value.ToString().Length; i++)
 {  string f = e.Value.ToString().Substring(i, 1).ToString().Trim();  if (f != "1" && f != "2" && f != "3" && f != "4" && f != "5" && f != "6" && f != "7" && f != "8" && f != "9" && f != "0" && f != ".")  {
e.Value = "";//如果不是数字,直接清空
  }
 }
}
 e.ParsingApplied = true;
} --------------------编程问答-------------------- 不好意思代码有些不规范,自己整理一下吧 --------------------编程问答-------------------- 顶一下下!!! --------------------编程问答-------------------- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --------------------编程问答--------------------
引用 2 楼 liuman2 的回复:
private DataGridViewTextBoxEditingControl EditCell; 

void DataGideView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) 

EditCell = (DataGridViewTextBoxEditingControl)e.Control; 
EditCell.SelectAll(); 
EditCell.KeyPress += new KeyPressEventHandler(Cells_KeyPress); 


void Cells_KeyPress(object sender, KeyPressEventArgs e) 

if (!Char.IsNumber(…
--------------------编程问答-------------------- 不知,帮顶 --------------------编程问答-------------------- 顶了
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,