이것이 작동하지 않는 이유를 모르겠습니다.NumericUpDown 값을 설정할 때 "입력 문자열의 형식이 올바르지 않습니다."
내 프로그램에서 잔뜩을 설정하는 파일을 사용하고 있습니다. 구분자를 사용하여 파일의 내용을 읽습니다. 내 텍스트 파일은 다음과 같습니다 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);
}
}
}
문제는 숫자 위/아래 컨트롤이 아니며 'int.Parse()'메소드입니다. [documentation] (http://msdn.microsoft.com/en-us/library/b3h1hf19.aspx)에서는 입력 문자열이 올바른 형식이 아닌 경우 예외가 발생한다고 말합니다. 입력에 소수점이 포함되어있는 경우 올바른 형식이 아닐 수도 있습니다. '5001 & 5002 & 5003'은 유효한 정수가 아닙니다. –
NumericUpDowns는 십진수를 지원합니까? –
오류를 디버깅 했습니까? 오류가 발생했을 때 _setting_에는 무엇이 있습니다. 또한 .Prim() 내부에서 _Trim() _을 수행하면 약간의 공간이 생길 수 있습니다. 둘째로 if-else 대신 _switch_ 문을 사용하십시오. –