从文本框中删除数字会产生错误
本文关键字:错误 数字 删除 文本 | 更新日期: 2023-09-27 17:59:01
我有一个TextBox
,我想在其中放置一个数字,程序应该通过将其转换为十进制来读取它,但是,在用这个数字进行所需的数学运算后,如果我将其从TextBox
中删除,它会立即产生错误:
未处理格式异常(输入字符串格式不正确)
这种情况发生在我试图将文本转换为十进制的行上
private void readW_TextChanged(object sender, EventArgs e)
{
string _W = readW.Text;
_Wd = Convert.ToDecimal(_W);
}
您获得
未处理格式异常(输入字符串格式不正确)
因为CCD_ 3不能被转换成CCD_。
如果解析失败,您可以使用TryParse通知您:
bool success = decimal.TryParse(_W, out _Wd);
if (success) {
// Use the result
}
else {
// Depending on your needs, do nothing or show an error
}
请注意,_W
和string.Empty
可能是您想要忽略的条件,而其他解析失败可能会导致出现错误消息。如果是这样,您的else
可能看起来像
else {
if (!string.IsNullOrEmpty(_W)) ShowAnErrorMessageSomehow();
}
听起来像是在制造它,所以数字无法转换为十进制。不出所料,这会导致转换失败。尝试改用Decimal.TryParse
:
private void readW_TextChanged(object sender, EventArgs e)
{
string _W = readW.Text;
Decimal.TryParse(_W, out _Wd);
}
如果转换失败,这将防止出现异常。它还将返回一个bool,只有当转换成功时,您才能使用它有条件地执行其他操作,例如:
private void readW_TextChanged(object sender, EventArgs e)
{
string _W = readW.Text;
if(Decimal.TryParse(_W, out _Wd))
{
Console.WriteLine("Valid decimal entered!");
}
}
请尝试此代码。但请确保用户只能在文本框中键入数字。谢谢
private void readW_TextChanged(object sender, EventArgs e)
{
string _W = readW.Text;
_Wd = Convert.ToDecimal("0"+_W);
}