The error means that the string you’re trying to parse an integer from doesn’t actually contain a valid integer.
It’s extremely unlikely that the text boxes will contain a valid integer immediately when the form is created – which is where you’re getting the integer values. It would make much more sense to update a and b in the button click events (in the same way that you are in the constructor). Also, check out the Int.TryParse method – it’s much easier to use if the string might not actually contain an integer – it doesn’t throw an exception so it’s easier to recover from.
I ran into this exact exception, except it had nothing to do with parsing numerical inputs. So this isn’t an answer to the OP’s question, but I think it’s acceptable to share the knowledge.
I’d declared a string and was formatting it for use with JQTree which requires curly braces ({}). You have to use doubled curly braces for it to be accepted as a properly formatted string:
string measurements = string.empty;
measurements += string.Format(@”
{{label: ‘Measurement Name: {0}’,
children: [
{{label: ‘Measured Value: {1}’}},
{{label: ‘Min: {2}’}},
{{label: ‘Max: {3}’}},
{{label: ‘Measured String: {4}’}},
{{label: ‘Expected String: {5}’}},
]
}},”,
drv[“MeasurementName”] == null ? “NULL” : drv[“MeasurementName”],
drv[“MeasuredValue”] == null ? “NULL” : drv[“MeasuredValue”],
drv[“Min”] == null ? “NULL” : drv[“Min”],
drv[“Max”] == null ? “NULL” : drv[“Max”],
drv[“MeasuredString”] == null ? “NULL” : drv[“MeasuredString”],
drv[“ExpectedString”] == null ? “NULL” : drv[“ExpectedString”]);
Hopefully this will help other folks who find this question but aren’t parsing numerical data.