Click here to Skip to main content
15,886,362 members
Articles / Programming Languages / C#
Alternative
Tip/Trick

InputBox: A simple user input dialog

Rate me:
Please Sign up or sign in to vote.
5.00/5 (1 vote)
1 Dec 2011CPOL 5.7K   2  
So here is a tip on how to improve upon this code. Do not silently catch exceptions! Instead, create a very simple logging mechanism that allows you to inspect the exception, either from code or during debugging.public static class InputBox{ public static Exception LastError {get; private...

So here is a tip on how to improve upon this code. Do not silently catch exceptions! Instead, create a very simple logging mechanism that allows you to inspect the exception, either from code or during debugging.


C#
public static class InputBox
{
  public static Exception LastError {get; private set;}
  public static void ClearLastError(){ LastError = null;}

  public static double? GetDouble(string caption, string defaultValue)
  {
     ClearLastError();
     using (InputForm inForm = new InputForm(caption, defaultValue))
     {
            if (inForm.ShowDialog() == DialogResult.Cancel) return null;
            if (inForm.StringValue == string.Empty) return null;
            try { return double.Parse(inForm.StringValue); }
            catch (Exception ex)
            { 
               LastError = ex;
               return null; 
            }
     }
  }  
}

Contrived usage:


C#
double? value = InputBox.GetDouble("xyz", "1.0");
if(!value.HasValue && InputBox.LastError is OutOfMemoryException)
{
    // holy ship, batman!
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
Netherlands Netherlands
Doing that 'computer thing' ever since the C64.

Sometimes I feel that being a programmer is much like being a doctor: You just have to know everything and if you don't, something dies.

Either being an application or a patient.

Oddly enough, more people care about the death of their application, than the massacre of people...

Comments and Discussions

 
-- There are no messages in this forum --