我正在使用vs2010和本地数据库在c#windows应用程序中工作。在我的一个表单中,我使用的是bindingNavigator,我插入了一些Textboxes,其中一些只需要用整数填充。
问题在于,当我从其中一个文本框中删除所有数据时,鼠标被锁定,我无法移动到另一个文本框或关闭程序,除非文本框中至少插入了一个数字。当没有插入任何内容并且能够继续导航到程序时,如何使其自动完成0?
答案 0 :(得分:3)
如果你有很多这样的控件,那么为每个控件编写这个条件都很无聊。您可以只继承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";
}
}
}
答案 1 :(得分: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
}
...
这样,当不可能进行整数转换时(例如,输入一个字母),您将避免可能的异常
答案 2 :(得分:0)
解决方案很简单,问题出在textbox.Text == null表达式中。在文本框的Leave事件中,我刚使用了代码:
if (nameTextBox.Text == "")
{
nameTextBox.Text = "0";
}