dataGridview中单元格的值只允许输入数字???

修改一下昵称 2009-05-12 08:13:27
dataGridview中单元格的值只允许输入数字并且随时捕获到用户输入的每一个数字??
怎么实现??
...全文
1214 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
y2t25 2010-06-11
  • 打赏
  • 举报
回复
兄弟,单元格输入时怎么把0-9之外的键屏蔽掉!
修改一下昵称 2009-05-12
  • 打赏
  • 举报
回复
解决了。
修改一下昵称 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wuyq11 的回复:]
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
double d= 0.0;
dataGridView1.Rows[e.RowIndex].ErrorText = string.Empty;
if(dataGridView1.Columns[e.ColumnIndex].DataPropertyName == "")
{
if(!double.TryParse(e.FormattedValue.ToString(),out d) )
{

[/Quote]
先谢谢10楼和11楼。
这个是可以验证!
我是想在单元格输入时把0-9之外的键屏蔽掉!

yuanmanguo 2009-05-12
  • 打赏
  • 举报
回复
有是 datagridview
wuyq11 2009-05-12
  • 打赏
  • 举报
回复
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
double d= 0.0;
dataGridView1.Rows[e.RowIndex].ErrorText = string.Empty;
if(dataGridView1.Columns[e.ColumnIndex].DataPropertyName == "")
{
if(!double.TryParse(e.FormattedValue.ToString(),out d) )
{
dataGridView1.Rows[e.RowIndex].ErrorText = "数量输入有误!";
e.Cancel = true;
}
}
}
参考
MLGB_HOHO 2009-05-12
  • 打赏
  • 举报
回复
using System.Text.RegularExpressions;
static private Regex r = new Regex("^[0-9]{1,}$"); //这个可以写成静态的,就不用老是构造

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 3)//第四列的值为数字
{
if(!r.IsMatch(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()))
{
MessageBox.Show("请输入数字");
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "";
}
}
}

试试 呵呵
修改一下昵称 2009-05-12
  • 打赏
  • 举报
回复
在线等。。。。。
修改一下昵称 2009-05-12
  • 打赏
  • 举报
回复
来位大虾帮个忙。。分少了可以加!
修改一下昵称 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 QQQQAnnie 的回复:]
datagridview-->编辑列--》DefaultCellStyle-->Format-->Numeric

试一下。
[/Quote]
不行,还有没其他办法。。?
QQQQAnnie 2009-05-12
  • 打赏
  • 举报
回复
datagridview-->编辑列--》DefaultCellStyle-->Format-->Numeric

试一下。
修改一下昵称 2009-05-12
  • 打赏
  • 举报
回复
dataGridView1_KeyPress?
dataGridView1_KeyDown?
dataGridView1_KeyUp?
这三个我都试过了,都不行。
要写到哪个事件呢?
QQQQAnnie 2009-05-12
  • 打赏
  • 举报
回复
有个属性Mask 选择 00000
wewei123shangdawei 2009-05-12
  • 打赏
  • 举报
回复
是不是事件弄错了?
修改一下昵称 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 llsen 的回复:]
cell_enter事件,或者cell_keypress事件,不记得那个了
然后你在这个事件里面,判断列
如果是要的这一列值,你就验证是否只是数字
只是数字的话,可以通过,否则,,


貌似有比这更好的效果
以前做过,没备份,不记得了
也好久没写过winform的事件了
[/Quote]
但是我在keypress事件里面写了验证的,单元格编辑时没有触发这个事件。。
??有点奇怪
llsen 2009-05-12
  • 打赏
  • 举报
回复
cell_enter事件,或者cell_keypress事件,不记得那个了
然后你在这个事件里面,判断列
如果是要的这一列值,你就验证是否只是数字
只是数字的话,可以通过,否则,,


貌似有比这更好的效果
以前做过,没备份,不记得了
也好久没写过winform的事件了

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧