Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文本框“;锁;值为null时(应为整数)_C#_Winforms_Visual Studio 2010_Textbox_Sql Server Ce - Fatal编程技术网

C# 文本框“;锁;值为null时(应为整数)

C# 文本框“;锁;值为null时(应为整数),c#,winforms,visual-studio-2010,textbox,sql-server-ce,C#,Winforms,Visual Studio 2010,Textbox,Sql Server Ce,我在使用vs2010和本地数据库的c#windows应用程序中工作。在我的一个表单中,我使用bindingNavigator,并插入了一些文本框,其中一些文本框只需要用整数填充 问题是,当我从其中一个文本框中删除其中的所有数据时,鼠标被锁定,除非在文本框中插入至少一个数字,否则我无法移动到另一个文本框或关闭程序。当没有插入任何内容时,如何使其自动完成0,并能够继续导航到程序中 我看到您找到了解决方案,但您确实想使用: if (string.IsNullOrEmpty(nameTextBox.Te

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


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

我看到您找到了解决方案,但您确实想使用:

if (string.IsNullOrEmpty(nameTextBox.Text)){ nameTextBox.Text = "0"; } 
要填充零,然后在int.Parse上使用int.TryParse:

int n;
if(!int.TryParse(nameTextBox.Text, out n))
{
//handle failed parse
}
...

这样,当无法进行整数转换(即输入字母)时,您将避免可能出现的异常情况。

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

if (nameTextBox.Text == "") 
{ 
nameTextBox.Text = "0";
}

如果有很多这样的控件,那么为每个控件编写这些条件是很无聊的。您可以只继承TextBox控件:

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";
            }
        }
    }

99.99%的时间里,需要代码来帮助回答问题;如果(textbox1.Text==null){textbox1.Text=test.ToString();}在哪种情况下?解决方案非常简单,问题出在textbox.Text==null表达式中。在文本框的Leave事件中,我只使用了代码:if(nameTextBox.Text==“”){nameTextBox.Text=“0”}