找回密码
 立即注册

QQ登录

只需一步,快速开始

yaoxiaoqiang00
中级会员   /  发表于:2015-5-7 10:58  /   查看:4984  /  回复:2
某些单元格是数值格式的,我想禁止录入文本,怎么实现?

2 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-5-7 15:25:00
沙发
回复 1楼yaoxiaoqiang00的帖子

问题已经查收,正在调查中,目前的解决方法是通过截获编辑事件来判断输入字符是否属于数字,如果不是就取消编辑。您可以先通过这个思路尝试,我这边也会继续跟进。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-8 13:47:00
板凳
回复 1楼yaoxiaoqiang00的帖子

测试代码如下:

  1. private void gcSpreadSheet1_EditChange(object sender, GrapeCity.Windows.SpreadSheet.UI.EditCellEventArgs e)
  2.         {
  3.             SpreadView sv = sender as SpreadView;
  4.             TextBox tx = sv.CellEditor as TextBox;
  5.             string cellText = tx.Text;

  6.             if (!bolNum(cellText))
  7.             {
  8.                 tx.Text = tx.Text.Substring(0, tx.Text.Length - 1);
  9.                 tx.Select(tx.Text.Length, 0);
  10.             }
  11.             
  12.         }

  13.         public bool bolNum(string temp)
  14.         {
  15.             for (int i = 0; i < temp.Length; i++)
  16.                         {
  17.                 byte tempByte=Convert.ToByte(temp[i]);
  18.                 if ((tempByte<48)||(tempByte>57))
  19.                     {
  20.                     return false;
  21.                     }
  22.                         }

  23.             return true;
  24.         }
复制代码


代码中只考虑了在文本末尾输入字符的情况,其他情况请楼主完善下。

评分

参与人数 1满意度 +5 收起 理由
yaoxiaoqiang00 + 5 thank you

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部