Instead of wasting lots of time creating a string from a char array,
creating a string from another char array, concatenating them both into
a new string, and casting the keychar to a string to see if the string
contains it, make the operation natural and very efficient by creating a
new char array that has both invalid characters and making sure the
illegal character array does not contain the element.
Compacted the validation on frmBuilder's btnBuild_Click(object,
EventArgs) method. This is a slight optimization, but it does help
remove the repetitive else statements.