首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >值为null时Textbox "locks“(应为整数)

值为null时Textbox "locks“(应为整数)
EN

Stack Overflow用户
提问于 2012-03-13 03:38:23
回答 3查看 1.2K关注 0票数 1

我在一个使用vs2010和本地database.In的c# windows应用程序中工作,这是我的一个表单,我正在使用一个bindingNavigator,我插入了一些文本框,其中一些文本框只需要用整数填充。

问题是,当我删除其中一个文本框中的所有数据时,鼠标被锁定,除非在文本框中插入至少一个数字,否则我无法移动到另一个文本框或关闭程序。当没有插入任何东西时,我如何让它自动完成0,并能够继续导航到程序中?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-28 05:11:03

解决方案非常简单,问题出在textbox.Text==null表达式中。在文本框的Leave事件中,我只使用了以下代码:

代码语言:javascript
复制
if (nameTextBox.Text == "") 
{ 
nameTextBox.Text = "0";
}
票数 0
EN

Stack Overflow用户

发布于 2012-10-05 12:28:21

如果你有很多这样的控件,那么为每个控件都写这个条件是很无聊的。你可以直接继承TextBox控件:

代码语言:javascript
复制
public partial class NumberTextBox : TextBox
    {
        public NumberTextBox()
        {
            InitializeComponent();
        }

        private void NumberTextBox_Leave(object sender, EventArgs e)
        {
            string tTxt = ((TextBox)sender).Text;
            double tDbl;
            int tInt;
            if (tTxt == "" || !double.TryParse(tTxt, out tDbl) || !int.TryParse(tTxt, out tInt))
            {
                ((TextBox)sender).Text = "0";
            }
        }
    }
票数 3
EN

Stack Overflow用户

发布于 2012-03-13 15:11:48

我看到你找到了一个解决方案,但你真的想使用:

代码语言:javascript
复制
if (string.IsNullOrEmpty(nameTextBox.Text)){ nameTextBox.Text = "0"; } 

要填充一个零,然后在int.Parse上使用int.TryParse:

代码语言:javascript
复制
int n;
if(!int.TryParse(nameTextBox.Text, out n))
{
//handle failed parse
}
...

这样,当不可能进行整数转换时,您将避免可能的异常(F.E.输入了一个字母)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9673644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档