C#,textbox1和textbox2未输入数据时点计算弹出message说“请输入数据”,只有前两个textbox输入数据后点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#,textbox1和textbox2未输入数据时点计算弹出message说“请输入数据”,只有前两个textbox输入数据后点相关的知识,希望对你有一定的参考价值。

计算才可以在下面的textbox3中显示结果

            if (textBox1.Text.Trim() == "")
            
                MessageBox.Show("请输入第一个");
            
            else if (textBox2.Text.Trim() == "")
            
                MessageBox.Show("请输入第二个");
            
            else
            
                //计算
            

追问

顺便问一下这个怎么解决啊?

追答   //方法一            int a = 0;
            if (int.TryParse(this.textBox1.Text, out  a))
            
                MessageBox.Show("输入正确");
            
            else
            
                MessageBox.Show("输入错误");
            
 
            //方法二
            try
            
                int b = int.Parse(this.textBox1.Text);
                MessageBox.Show("输入正确");
            
            catch (Exception ex)
            
                MessageBox.Show("输入错误,错误信息:"+ex.Message);
                
            

你这个是因为你将string 转换成int的时候错误

可以用上面两种方法来处理。

参考技术A using System.Text.RegularExpressions;

int i = 0;
int j = 0;
if (string.IsNullOrEmpty(textBox1.Text.Trim()) == false)
     
          if (Regex.IsMatch(textBox1.Text.Trim(), "[0-9]"))
          
               i = int.Parse(textBox1.Text.Trim());
          
          else
          
               MessageBox.Show("请输入数字!");
          
      
      else 
      
          MessageBox.Show("请输入数据!");
      

参考技术B 后台 判断啊,有什么问题?追问

能给段代码出来吗?

C#怎么限制textbox只能输入小数和负号?

要符合数学的规格,负号可有可无,有的话必须在开头,小数点不能在开头也不能在最后,输入完小数点后不能再输入,不能输入其他字符,0在前面只能有一个,如果输入了小数点,最后不能有0,不能输入空格,可以输入退格和删除,复制粘贴也要防范,赶脚好麻烦的样纸,正则我用过但是面对那么多规则,我不禁陷入了沉思当中……求大神解啊!!!

首先你要限制他输入要是数字和负号;

其次你要判断他中间需要有并且只能有一个小数点+负号。

限制数字代码如下(要确保输入能删能回车)写在KeyPress事件里:

            //如果输入的不是数字键,也不是回车键、Backspace键,则取消该输入
            if (!(Char.IsNumber(e.KeyChar)) //数字
                 && e.KeyChar != (char)13 //回车阿斯玛
                 && e.KeyChar= (char)8   //删除阿斯玛
                 && e.KeyChar= (char)46   // .阿斯玛
                 && e.KeyChar= (char)45  // -阿斯玛
               )
            
               e.Handled = true;
            

判断写在响应回车之时,写在KeyDown事件里:

             if(e.KeyCode==Keys.Enter)
             
                if (textBox1.Text.Split(textBox1.Text,'.').Count==1&&textBox1.Text.SubString()!='-')
                
                   textBox2.Focus(); //焦点这才移开
                
                else
                
                   MessageBox.Show("输入违法");
                
              

参考技术A

 KeyPress事件里面控制:

 private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        
            if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13 && e.KeyChar != 45 && e.KeyChar != 46)
            
                e.Handled = true;
            
            //输入为负号时,只能输入一次且只能输入一次
            if (e.KeyChar == 45 && (((TextBox)sender).SelectionStart != 0 || ((TextBox)sender).Text.IndexOf("-") >= 0)) e.Handled = true;
            //输入为小数点时,只能输入一次且只能输入一次
            if (e.KeyChar == 46 && ((TextBox)sender).Text.IndexOf(".") >= 0) e.Handled = true;
        

追问

在前面加点代码一开始就不可以输入小数点了。

追答

对的,现在是一开始就可以输入小数点,改改就行了。

本回答被提问者和网友采纳
参考技术B 给文本框添加正则表达式^(-?\d+)(\.\d+)?

string regexString=@"^(-?\d+)(\.\d+)?"
Regex.IsMatch(TextBox1.Text, regexString);

以上是关于C#,textbox1和textbox2未输入数据时点计算弹出message说“请输入数据”,只有前两个textbox输入数据后点的主要内容,如果未能解决你的问题,请参考以下文章

C# 中如何将SQL数据库中读取到的 一整行数据 存到数组,最好是list中,请写详细答案

asp.net c# 回车enter文本框填满后提交

C#textbox问题

在C#中注册页面如何判断用户名和密码为空

vb6.0 textbox2怎么显示不出来数据,换成 textbox1就可以了呢

c# winform中读取字符串?