怎么控制datagridview里的单元格输入格式只能输入手机号
答案:2 悬赏:70 手机版
解决时间 2021-02-13 19:42
- 提问者网友:情歌越听越心酸
- 2021-02-13 02:48
怎么控制datagridview里的单元格输入格式只能输入手机号
最佳答案
- 五星知识达人网友:鱼忧
- 2021-02-13 03:04
正则表达式可以,
还有一种方法,就是判断:在datagridview的.keypress事件中判断是否是数字键(手机号一般是11位),不是数字键就禁掉
例如:(这是vb2005的代码,不知道你用的是哪个,但程序代码意思基本相同,只是书写方式不一样,亲,相信你能懂)
Public EditCell As DataGridViewTextBoxEditingControl
Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
EditCell = CType(e.Control, DataGridViewTextBoxEditingControl)
EditCell.SelectAll()
AddHandler EditCell.KeyPress, AddressOf Cells_KeyPress
End Sub
Private Sub Cells_KeyPress(ByVal sender As System.Object, ByVal e As KeyPressEventArgs)
If e.KeyChar <> Chr(8) And e.KeyChar <> Chr(13) And (e.KeyChar < Chr(48) Or e.KeyChar > Chr(57)) Then
Beep()
Beep()
e.KeyChar = Chr(0)
End If
End Sub
如果是C#,我这里给你一个:DataGridView中的单元格中只能输入数字的一种解决方法 :就是给DataGirdView添加CellParsing方法
private void dataGridView5_CellParsing(object sender, DataGridViewCellParsingEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[-]?\d+[.]?\d*$");
if (!reg1.IsMatch(e.Value.ToString()))
{
MessageBox.Show("对不起!必须是数字,请重新输入!");
e.Value = "0.00";
e.ParsingApplied = true;
}
}
你可以试试,祝你成功!
还有一种方法,就是判断:在datagridview的.keypress事件中判断是否是数字键(手机号一般是11位),不是数字键就禁掉
例如:(这是vb2005的代码,不知道你用的是哪个,但程序代码意思基本相同,只是书写方式不一样,亲,相信你能懂)
Public EditCell As DataGridViewTextBoxEditingControl
Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
EditCell = CType(e.Control, DataGridViewTextBoxEditingControl)
EditCell.SelectAll()
AddHandler EditCell.KeyPress, AddressOf Cells_KeyPress
End Sub
Private Sub Cells_KeyPress(ByVal sender As System.Object, ByVal e As KeyPressEventArgs)
If e.KeyChar <> Chr(8) And e.KeyChar <> Chr(13) And (e.KeyChar < Chr(48) Or e.KeyChar > Chr(57)) Then
Beep()
Beep()
e.KeyChar = Chr(0)
End If
End Sub
如果是C#,我这里给你一个:DataGridView中的单元格中只能输入数字的一种解决方法 :就是给DataGirdView添加CellParsing方法
private void dataGridView5_CellParsing(object sender, DataGridViewCellParsingEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[-]?\d+[.]?\d*$");
if (!reg1.IsMatch(e.Value.ToString()))
{
MessageBox.Show("对不起!必须是数字,请重新输入!");
e.Value = "0.00";
e.ParsingApplied = true;
}
}
你可以试试,祝你成功!
全部回答
- 1楼网友:封刀令
- 2021-02-13 04:18
private void dgvdetail_cellvalidating(object sender, datagridviewcellvalidatingeventargs e)
{
uint digitcell = 0; // 这里需要无符号数字
dgvdetail.rows[e.rowindex].errortext = string.empty; // 先把错误提示清空
if (dgvdetail.columns[e.columnindex].datapropertyname == "")
{// 如果本列为用户手工编辑列
if (e.columnindex == dgvdetail.columns[cglobal.t_col_inv_amount].index)
{// 指定特定列
if (!uint.tryparse(e.formattedvalue.tostring(), out digitcell))
{// 如果不是uint
dgvdetail.rows[e.rowindex].errortext = "数量输入有误!";
e.cancel = true; // 不能通过验证
}
}
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯