当前位置:编程学习 > C#/ASP.NET >>

如何实现text.box的使用?

请大家赐教:
     我想在private void textBox1_TextChanged(object sender, EventArgs e)实现:
     当向textbox1 输入数字时,如果数字减去200大于150或者许减去200小于-150时,提示:“请输入正确的数字”,如果没有输入数据,提示:“请输入数字”


             请高手赐教C#编写程序! --------------------编程问答-------------------- if(!string.IsNullOrEmpty(this.textBox1.Text))
{

int num=Convert.ToInt32(this.textBox1.Text)-200;
if(num>150||num<-150)
{
   MessageBox.Show("请输入正确的数字");
}
}
else
{
MessageBox.Show("请输入数字");
}
   
--------------------编程问答--------------------
引用 1 楼 bonylee 的回复:
if(!string.IsNullOrEmpty(this.textBox1.Text))
{

int num=Convert.ToInt32(this.textBox1.Text)-200;
if(num>150||num <-150)
{
  MessageBox.Show("请输入正确的数字");
}
}
else
{
MessageBox.Show("请输入数字");
}
 


有问题,当我才输入一个数字的时候就会跳出:请输入正确的数字,
--------------------编程问答-------------------- 可以在TextBox.TextChanged 事件中增加一段判断

int i = 0;

if (int.TryParse(textBox1.Text, out i))
{
  if (i > 350 || i < 50)
  {
    MessageBox.Show("请输入正确的数字");
    textBox1.select();
  }
}
else
{
  MessageBox.Show("请输入正确的数字");
  textBox1.select();
}
--------------------编程问答--------------------
引用 3 楼 shabble 的回复:
可以在TextBox.TextChanged 事件中增加一段判断
C# codeint i=0;if (int.TryParse(textBox1.Text,out i))
{if (i>350|| i<50)
  {
    MessageBox.Show("请输入正确的数字");
    textBox1.select();
  }
}else
{
  MessageBox.Show("请输入正确的数字");
  textBox1.select();
}


你这个也不行,也是同样的问题了,刚输了一位数字就会跳出:请输入正确的数字! --------------------编程问答-------------------- 在这个事件里面不怎么好判断,你可以放到leave事件里去判断,方法和上面一样,事件换下就可以 --------------------编程问答-------------------- 你可以试试在textbox失去焦点时出发判断事件 --------------------编程问答-------------------- 最好不要直接Convert,如果要用也要加try……catch --------------------编程问答-------------------- code=C#]
private void textBox1_Leave(object sender, EventArgs e)
        {
if (int.TryParse(textBox1.Text,out i)) 
{if (i>350|| i <50) 
  { 
    MessageBox.Show("请输入正确的数字"); 
    textBox1.select(); 
  } 
}else 

  MessageBox.Show("请输入正确的数字"); 
  textBox1.select(); 


        }
[/code] --------------------编程问答-------------------- LostFocus事件 --------------------编程问答-------------------- 在文本控件的Leave事件中进行判断 --------------------编程问答-------------------- Validated事件 --------------------编程问答-------------------- 5楼正解 --------------------编程问答-------------------- 我按照你们的方法都做了,还是不行啊?请高手写个完整的好吗? --------------------编程问答-------------------- 像这样的问题
你为什么不再javascript里写那
在客户端做 
多符合逻辑
给我一会时间我给你写一个 --------------------编程问答--------------------
引用 14 楼 kkkkkkmn 的回复:
像这样的问题
你为什么不再javascript里写那
在客户端做
多符合逻辑
给我一会时间我给你写一个

好的,谢谢你了! --------------------编程问答-------------------- int i = 0;

if (int.TryParse(textBox1.Text, out i))
{
  if (i > 350 || i < 50)
  {
    MessageBox.Show("请输入正确的数字");
    textBox1.select();
  }
}
else
{
  MessageBox.Show("请输入正确的数字");
  textBox1.select();
}
--------------------编程问答-------------------- 不知道你要winform的还是web的...贴个winform中的,至于web中的直接用js写就好了
        private void textBox2_MouseLeave(object sender, EventArgs e)
        {
            int i = 0;
            Int32.TryParse(textBox2.Text, out i);
            if (textBox2.Text == "")
            {
                MessageBox.Show("请输入正确数字", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else if (((i - 200) > 150) || ((i - 200) < (-150)))
            {
                MessageBox.Show("请输入数字", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            { }
        }
--------------------编程问答--------------------     <script language="javascript" type="text/javascript">
       
    function abc()
    {
        var temp= document.getElementById("textbox1").value;
        if(temp==''&&temp==null)
        {
            alert("请输入数字");
        }else
        {
            if(temp>350||temp<50)
            {
                alert("请输入正确的数字");
            }
        
        }
    }
    
    
    
    
    </script>

</head>
<body>
    <form id="form1" runat="server">
        <div>
            <input type="text" id="textbox1" onblur="abc()" />
        </div>
    </form>
</body>
</html>

你看看吧 --------------------编程问答-------------------- 对了 忘问了
是不是WEB的
要是得花JS多方便 --------------------编程问答--------------------
引用 17 楼 fdh120 的回复:
不知道你要winform的还是web的...贴个winform中的,至于web中的直接用js写就好了
C# codeprivatevoid textBox2_MouseLeave(object sender, EventArgs e)
        {int i=0;
            Int32.TryParse(textBox2.Text,out i);if (textBox2.Text=="")
            {
                MessageBox.Show("请输入正确数字","提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }elseif (((i-200)>150)|| ((i-200)< (-150)))
            {
                MessageBox.Show("请输入数字","提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }else
            { }
        }



你的也不行啊,是在winform里的! --------------------编程问答-------------------- 现在就是触发不了事件,输入数据没有反应! --------------------编程问答-------------------- 我操早说啊 
害我写了半天 --------------------编程问答--------------------
引用 19 楼 kkkkkkmn 的回复:
对了 忘问了
是不是WEB的
要是得花JS多方便

不是,是在winform中实现的! --------------------编程问答--------------------
引用 23 楼 ounce555 的回复:
引用 19 楼 kkkkkkmn 的回复:
对了 忘问了
是不是WEB的
要是得花JS多方便

不是,是在winform中实现的!

sorry!
--------------------编程问答--------------------   private void textBox1_TextChanged(object sender, EventArgs e)
        {
            try
            {
                int i = int.Parse(textBox1.Text);
                if (i - 200 > 150 || i - 150 < -150)
                {
                    MessageBox.Show("请输入正确的数字.");
                }
                else if (textBox1.Text == null)
                { MessageBox.Show("请输入正确的数字."); }
            }
            catch (Exception erro)
            { //MessageBox.Show(erro.ToString());
                MessageBox.Show("请输入正确的数字!");              
            }
        } --------------------编程问答--------------------
引用 20 楼 ounce555 的回复:
引用 17 楼 fdh120 的回复:
不知道你要winform的还是web的...贴个winform中的,至于web中的直接用js写就好了
C# codeprivatevoid textBox2_MouseLeave(object sender, EventArgs e)
        {int i=0;
            Int32.TryParse(textBox2.Text,out i);if (textBox2.Text=="")
            {
                MessageBox.Show("请输入正确数字","提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }elseif (((i-200)>150)|| ((i-200) < (-150)))
            {
                MessageBox.Show("请输入数字","提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }else
            { }
        }



你的也不行啊,是在winform里的!

...额...我调试了没问题...是在textbox的MouseLeave事件中...别弄错了 --------------------编程问答--------------------
引用 24 楼 ounce555 的回复:
引用 23 楼 ounce555 的回复:
引用 19 楼 kkkkkkmn 的回复:
对了 忘问了
是不是WEB的
要是得花JS多方便

不是,是在winform中实现的!

sorry!

没关系
是我看的不仔细
我用winform试试看
--------------------编程问答-------------------- 如果写在光标离开的事件里,会导致不输入就无法关闭form;
写在change事件里,就会导致刚输入一个字就提示;

其实,这是一个式样问题,就是什么时候才算输完了,应该什么时候检查的问题。
一般,在form上放一个“确认”的按钮比较好,当按下这个按钮的时候检查,提示。 --------------------编程问答--------------------
引用 28 楼 donntknow 的回复:
如果写在光标离开的事件里,会导致不输入就无法关闭form;
写在change事件里,就会导致刚输入一个字就提示;

其实,这是一个式样问题,就是什么时候才算输完了,应该什么时候检查的问题。
一般,在form上放一个“确认”的按钮比较好,当按下这个按钮的时候检查,提示。

DDDDDDDDD --------------------编程问答--------------------  private void textBox1_Leave(object sender, EventArgs e)
        {
            int i = 0;

            if (textBox1.Text == "")
            {
                MessageBox.Show("请输入正确数字");
            }
            else
            {
                i = Convert.ToInt32(this.textBox1.Text.Trim());
                if (((i - 200) > 150) || ((i - 200) < (-150)))
                {
                    MessageBox.Show("请输入数字");
                }
            }

        }
用这个吧
你之前不好用的原因是
没有在textbox属性中的方法点击开 --------------------编程问答-------------------- 你在Form1.cs[设计]
面上点击textbox然后右键点击属性
然后再事件 交点处
找到 Leave
然后双击它 
你就会看到后台的方法
吧我写方法粘进去 --------------------编程问答--------------------  private void textBox1_TextChanged(object sender, EventArgs e) 
        { 
            try 
            { 
                int i = int.Parse(textBox1.Text); 
                if (i - 200 > 150 || i - 150 < -150) 
                { 
                    MessageBox.Show("请输入正确的数字."); 
                } 
                else if (textBox1.Text == null) 
                { MessageBox.Show("请输入正确的数字."); } 
            } 
            catch (Exception erro) 
            { //MessageBox.Show(erro.ToString()); 
                MessageBox.Show("请输入正确的数字!");              
            } 
        }





是这样吧!! --------------------编程问答--------------------
引用 1 楼 bonylee 的回复:
if(!string.IsNullOrEmpty(this.textBox1.Text))
 {

 int num=Convert.ToInt32(this.textBox1.Text)-200;
 if(num>150||num <-150)
 {
    MessageBox.Show("请输入正确的数字");
 }
 }
 else
 {
 MessageBox.Show("请输入数字");
 }


就这样 --------------------编程问答-------------------- [Quote=引用 30 楼 kkkkkkmn 的回复:]
private void textBox1_Leave(object sender, EventArgs e)
        {
            int i = 0;

            if (textBox1.Text == "")
            {
                MessageBox.Show("请输入正确数字");
            }
            else
            {
                i = Convert.ToInt32(this.textBox1.Text.Trim());
                if (((i - 200) > 150) || ((i - 200) < (-150)))
                {
                    MessageBox.Show("请输入数字");
                }
            }

        }
用这个吧
你之前不好用的原因是
没有在textbox属性中的方法点击开


那我还想问下了,如果输入数字不对的时候,光标能保持在当前的textbox中嘛,而不是直接跳到下一个textbox里!
--------------------编程问答--------------------
引用 30 楼 kkkkkkmn 的回复:
private void textBox1_Leave(object sender, EventArgs e)
        {
            int i = 0;

            if (textBox1.Text == "")
            {
                MessageBox.Show("请输入正确数字");
            }
            else
            {
                i = Convert.ToInt32(this.textBox1.Text.Trim());
                if (((i - 200) > 150) || ((i - 200) < (-150)))
                {
                    MessageBox.Show("请输入数字");
                }
            }

        }
用这个吧
你之前不好用的原因是
没有在textbox属性中的方法点击开


那我还想问下了,如果输入数字不对的时候,光标能保持在当前的textbox中嘛,而不是直接跳到下一个textbox里! 
--------------------编程问答--------------------
引用 35 楼 ounce555 的回复:
引用 30 楼 kkkkkkmn 的回复:
private void textBox1_Leave(object sender, EventArgs e)
        {
            int i = 0;

            if (textBox1.Text == "")
            {
                MessageBox.Show("请输入正确数字");
            }
            else
            {
                i = Convert.ToInt32(this.textBox1.Text.Trim());
                if (((i - 200) > 150) || ((i - 200) < (-150)))
                {
                    MessageBox.Show("请输入数字");
                }
            }

        }
用这个吧
你之前不好用的原因是
没有在textbox属性中的方法点击开


那我还想问下了,如果输入数字不对的时候,光标能保持在当前的textbox中嘛,而不是直接跳到下一个textbox里!

this.文本框ID.Focus() --------------------编程问答-------------------- 理论上市可以的
就是当 if (textBox1.Text == "") 
            { 
                MessageBox.Show("请输入正确数字"); 
            } 
            else 
            { 
                i = Convert.ToInt32(this.textBox1.Text.Trim()); 
                if (((i - 200) > 150) || ((i - 200) < (-150))) 
                { 
                    MessageBox.Show("请输入数字"); 
                } 
的时候 textbox获得焦点
这个简单你先自己研究
弱弱的问你一句
你知道接贴不
看看你的结贴率 
让人家怎么回答你啊 --------------------编程问答--------------------  private void textBox1_Leave(object sender, EventArgs e)
        {
            int i = 0;

            if (textBox1.Text == "")
            {
                this.textBox1.Focus();                MessageBox.Show("请输入正确数字");
                
            }
            else
            {
                i = Convert.ToInt32(this.textBox1.Text.Trim());
                if (((i - 200) > 150) || ((i - 200) < (-150)))
                {
                    this.textBox1.Focus();                    MessageBox.Show("请输入数字");
                }
            }

        }
就行了 --------------------编程问答--------------------
引用 38 楼 kkkkkkmn 的回复:
private void textBox1_Leave(object sender, EventArgs e)
        {
            int i = 0;

            if (textBox1.Text == "")
            {
               this.textBox1.Focus();                MessageBox.Show("请输入正确数字");
               
            }
            else
            {
                i = Convert.ToInt32(this.textBox1.Text.Trim());
                if (((i - 200) > 150) || ((i - 200) < (-150)))
                {
                   this.textBox1.Focus();                    MessageBox.Show("请输入数字");
                }
            }

        }
就行了



衷心感谢!太有才了你!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,