C# 2005 WinForm比如我一个datagridview有两列Name和Number都是文本框
一个在业务上是字符串,一个是数字
我在EditingControlShowing事件里把Number的这一列加了KeyPress事件,在这个事件里禁止输入非数字字符
DataGridViewTextBoxEditingControl txtec = e.Control as DataGridViewTextBoxEditingControl;
txtec.KeyPress += new KeyPressEventHandler(TextBox_KeyPress_ForInt);结果问题出来了,Name列和Number都只能输入数字了
(如果直接点击Name列的单元格是没问题,如果先点击Number再点击Name列就不行了)
明明我只对Number作了这个的事件操作,确影响到两个列,
所以我猜测,所有的同类型的列用的是同一个对象,不然没解释啊大家有没有遇到这种情况,愿指教,谢谢先
一个在业务上是字符串,一个是数字
我在EditingControlShowing事件里把Number的这一列加了KeyPress事件,在这个事件里禁止输入非数字字符
DataGridViewTextBoxEditingControl txtec = e.Control as DataGridViewTextBoxEditingControl;
txtec.KeyPress += new KeyPressEventHandler(TextBox_KeyPress_ForInt);结果问题出来了,Name列和Number都只能输入数字了
(如果直接点击Name列的单元格是没问题,如果先点击Number再点击Name列就不行了)
明明我只对Number作了这个的事件操作,确影响到两个列,
所以我猜测,所有的同类型的列用的是同一个对象,不然没解释啊大家有没有遇到这种情况,愿指教,谢谢先
明明我只对Number关联了事件,却影响到两个列,
switch (dgv.Columns[dgv.CurrentCell.ColumnIndex].Name.ToUpper())
{
case "NAME":
break;
case "NUMBER":
DataGridViewTextBoxEditingControl txtec = e.Control as DataGridViewTextBoxEditingControl;
txtec.KeyPress += new KeyPressEventHandler(TextBox_KeyPress_ForInt);
break;
}
你说的对啊,是datagridview的事件啊,有什么问题吗
{
DataGridViewTextBoxEditingControl txtec = e.Control as DataGridViewTextBoxEditingControl;
txtec.KeyPress += new KeyPressEventHandler(TextBox_KeyPress_ForInt);
}
直接判断!要是等于name就不做任何操作
你这个和switch有区别吗,呵呵to yanlifenghack ,GhostAdai
我模模糊糊有点理解你们的意思了