";输入字符串的格式不正确“;设置NumericUpDown值时

本文关键字:设置 NumericUpDown 不正确 值时 quot 输入 字符串 格式 | 更新日期: 2023-09-27 18:19:48

我不明白为什么这不起作用。

我正在使用一个文件在我的程序中设置一堆。我正在使用分隔符读取文件的内容。我的文本文件如下:The Message$1$5001&5002&5003

当我试图读取文件中数值的值时,我在第nudInterval.Value = decimal.Parse(setting);行遇到错误:Input string was not in a correct format.

我就是这样做的:

if (!lastUsed.EmptyFile())
{
    string[] allSettings = lastUsed.Text.Split('$');
    int settingCount = 0;
    foreach (string setting in allSettings)
    {
        settingCount++;
        if (settingCount == 1)
        {
            txtText.Text = setting;
        }
        else if (settingCount == 2)
        {
            if (setting == "0") tbType.SelectedTab = tbInterval;
            else tbType.SelectedTab = tbRange;
        }
        else if (settingCount == 3)
        {
            nudInterval.Value = decimal.Parse(setting);
        }
        else if (settingCount == 4)
        {
            nudMin.Value = decimal.Parse(setting);
        }
        else if (settingCount == 5)
        {
            nudMax.Value = decimal.Parse(setting);
        }
    }
}

";输入字符串的格式不正确“;设置NumericUpDown值时

这是因为您的分隔符有一半是&,而不是美元。

这意味着您正在尝试执行

nudInterval.Value = decimal.Parse("5001&5002&5003");

这将失败。

如果这些是有效的值,您可以更改您的拆分语句:

string[] allSettings = lastUsed.Text.Split(new char[] {'$', '&'});

或者替换&拆分前带有$:

string[] allSettings = lastUsed.Text.Replace('&', '$').Split('$');

这是int.Parse抛出的FormatException的消息。什么是setting?你认为这是一个有效数字的字符串,但事实并非如此。它可能会挂上一个&

如果添加Console.WriteLine(setting)MessageBox.Show(setting),或者只是设置一个断点并在调试器中查看setting,会发生什么?