C# 文本框“;锁;值为null时(应为整数)
我在使用vs2010和本地数据库的c#windows应用程序中工作。在我的一个表单中,我使用bindingNavigator,并插入了一些文本框,其中一些文本框只需要用整数填充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
问题是,当我从其中一个文本框中删除其中的所有数据时,鼠标被锁定,除非在文本框中插入至少一个数字,否则我无法移动到另一个文本框或关闭程序。当没有插入任何内容时,如何使其自动完成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”}