WinForms Checklist

Posted Tue, Sep 21 2010 23:34 by Deborah Kurata

There are endless numbers of details you have to contend with when building great software. So it is easy to forget about some of the small ones, especially when it comes to the UI. So I use a checklist like this one to help ensure I covered all of my bases.

Form

  • Related  controls are grouped together
  • Controls are in a logical sequence
  • Controls are aligned appropriately
  • Tab order is set
  • Standard font family and size are set
  • Title bar text is descriptive

Modal Dialog

  • Minimize button disabled
  • Maximize button disabled

Resizable Dialog

  • Minimum size defined
    • Prevents the form from being resized too small to be usable
  • Controls appropriately anchored/docked to size as the dialog resizes
    • No resize code should be required in most cases

Controls

  • All text is spelled correctly
  • Labels are consistent in tense and terminology
  • Tooltips defined on all appropriate controls
  • Disabled controls are grayed out and not accessible
  • Buttons are all a consistent size and location on the screen

Validation

  • All required fields are validated
    • All required fields are distinguished in some manner, such as bolding the label, adding an asterisk, or highlighting the control (pick one technique and use it consistently)
  • All numeric fields are validated

Use this checklist as you finish each one of your WinForm UI components so you don't have to sweat the details.

Enjoy!

Filed under: , , , ,

Comments

# re: WinForms Checklist

Wednesday, September 22, 2010 8:51 AM by Chan Beauvais

Thanks for the gentle, and thorough reminder and checklist.

I'm recommending this be added to our code review (not just code should be reviewed!)

Regards,

Chan

# re: WinForms Checklist

Wednesday, September 22, 2010 9:35 AM by Rostov

I almost *always* forget about tab order.  Don't know why.   :-P

Nice checklist -- love your blog.

# re: WinForms Checklist

Thursday, September 23, 2010 10:03 AM by Zloth

Tab order would always get me, too.  Now I save it for last and do it at the same time as adding my error handling.  I hate doing error trapping, so I never forget that step.

Leave a Comment

(required) 
(required) 
(optional)
(required) 
If you can't read this number refresh your screen
Enter the numbers above: