c# 计算器代码怎样只允许在数字后面输入一个点,至少有1个数字包括0的情况下才能输入,还有计算器的情况~ 10

比如至少一个数字的情况下,才能输入一个加号,不能重复输入,求解!还有什么情况的麻烦大家说说!谢谢... 比如至少一个数字的情况下,才能输入一个加号,不能重复输入,求解!还有什么情况的麻烦大家说说!谢谢 展开
 我来答
百度网友26c14b1d3
2012-08-08 · TA获得超过336个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:327万
展开全部
我封装好的方法 现在textbox中只能输入浮点数,整数位数、小数位数、正负号可控。如下:
/// <summary>
/// 限制textbox的内容为float类型
/// </summary>
/// <param name="textBox">文本框</param>
/// <param name="intCount">整数个数</param>
/// <param name="decimalCount">小数个数</param>
/// <param name="op">是否允许正负号</param>
public static void CheckFloatOfTextBox(TextBox textBox, int intCount, int decimalCount, bool op)
{
int charCount = textBox.SelectionStart;
CheckFloatOfTextBox(textBox, intCount, decimalCount, op, textBox.SelectionStart, ref charCount);
textBox.SelectionStart = charCount;
}
private static void CheckFloatOfTextBox(TextBox textBox, int intCount, int decimalCount, bool op, int startP, ref int charCount)
{
Regex regex = new Regex(@"^[+-]{0," + (op ? "1" : "0") + @"}([0-9]{1," + intCount + @"}(\.[0-9]{0," + decimalCount + @"}|\.|)$|$)");
int startPosition = startP;
if (startPosition == 0)
return;
if (!regex.IsMatch(textBox.Text))
{
if (textBox.Text.Length > 0)
{
textBox.Text = textBox.Text.Remove(startPosition - 1, 1);
startPosition = startPosition - 1;
charCount--;
}
}
else
startPosition = startPosition - 1;
if (startPosition >= 0)
CheckFloatOfTextBox(textBox, intCount, decimalCount, op, startPosition, ref charCount);
}
窗边消失的糖
2012-08-08 · 超过19用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:61.8万
展开全部
首先先写几个子程序。这个是VB里自带的处理字符串的程序。C#里需要自己写。网上也都有
public static string left(string sSource, int iLength)//取sSource左侧iLength位
{
return sSource.Substring(0, iLength > sSource.Length ? sSource.Length : iLength);
}
public static string right(string sSource, int iLength)//取sSource右侧iLength位
{
return sSource.Substring(iLength > sSource.Length ? 0 : sSource.Length - iLength);
}
public static string Mid(string sSource, int iStart, int iLength)//取sSource中间iStart到iLength位
{
int iStartPoint = iStart > sSource.Length ? sSource.Length : iStart;
return sSource.Substring(iStartPoint, iStartPoint + iLength > sSource.Length ? sSource.Length - iStartPoint : iLength);
}

首先你先要让输入的都是数字,可以用
If(right(textbox.Text)<48||right(textbox.Text)>57)
{
textbox.Text=left(textbox.Text,Len(textbox.Text)-1);
}
这段代码意思是如果输入框最右边一位(即新输入的一位)不是数字,那么就取输入框左边的字符串长度减一位(就是整个字符串除了新输入的那位)
然后就好办了。既然里面都是数字,只要字符串长度Len(textbox.Text)>0那么就至少有一个数字,所以这时如果按下符号键,就加个符号上去
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
靓颜丽妆
2012-08-08
知道答主
回答量:29
采纳率:0%
帮助的人:10.2万
展开全部
js正则表达式验证 \d+[.]\d+
更多追问追答
追问
没学到,怎么用if 那些的
追答
if(条件)
{执行代码}
else
{
执行代码

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式