我在一个使用vs2010和本地database.In的c# windows应用程序中工作,这是我的一个表单,我正在使用一个bindingNavigator,我插入了一些文本框,其中一些文本框只需要用整数填充。
问题是,当我删除其中一个文本框中的所有数据时,鼠标被锁定,除非在文本框中插入至少一个数字,否则我无法移动到另一个文本框或关闭程序。当没有插入任何东西时,我如何让它自动完成0,并能够继续导航到程序中?
发布于 2012-03-28 05:11:03
解决方案非常简单,问题出在textbox.Text==null表达式中。在文本框的Leave事件中,我只使用了以下代码:
if (nameTextBox.Text == "")
{
nameTextBox.Text = "0";
}发布于 2012-10-05 12:28:21
如果你有很多这样的控件,那么为每个控件都写这个条件是很无聊的。你可以直接继承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";
}
}
}发布于 2012-03-13 15:11:48
我看到你找到了一个解决方案,但你真的想使用:
if (string.IsNullOrEmpty(nameTextBox.Text)){ nameTextBox.Text = "0"; } 要填充一个零,然后在int.Parse上使用int.TryParse:
int n;
if(!int.TryParse(nameTextBox.Text, out n))
{
//handle failed parse
}
...这样,当不可能进行整数转换时,您将避免可能的异常(F.E.输入了一个字母)
https://stackoverflow.com/questions/9673644
复制相似问题