$29
The purpose of this assignment is to get experience with a Windows Forms application and to get additional practice with object oriented programming including the reuse of existing classes. In this assignment, you are asked to replace the console application interface in the previous project with a Windows Forms interface in this project. If your Name and NameList classes were well-designed and implemented, you should not need to do anything further with them other than use them in this assignment. However, please correct any identified shortcomings in those classes.
Specifications
While the design of the user-interface is up to your imagination, there are some minimal requirements. It should display all names in a ListBox. When a name is selected in this control, the properties of that parsed Name should be displayed in TextBox, Label, or similar controls. Only the Original Name property should be editable, and if it is edited, the edited name should replace the name that was edited in the ListBox and the NameList. The change should occur when the focus moves away from the Original Name field on the form. There should be a button or similar control that allows the user to alternate between displaying names in the ListBox in last-first order and first-last order. A status bar should show at least the number of names in the NameList and the current date and time (updated continually).
The primary form should have a menu that allows one to open and save files, exit the program, add a new name to an existing NameList, delete a name from the NameList, and display an About box. You may have as many other menu choices as you wish. For example, you may allow the user to tailor the appearance of the primary form by selecting colors and fonts.
The primary form should have a Boolean ChangesMade property that is set to True or False as appropriate. It should be true if changes have been made to the NameList since it was last saved, and it should be set to false initially and after saving. The user should be prompted to save the NameList when the application is closing if there are unsaved changes.
The About Box should be tailored to suit the application including an appropriate graphic other than the system-supplied original. It should get the information it displays from AssemblyInfo.cs. The application should also have an appropriate splash screen. Neither the About Box nor the splash screen should be ordinary MessageBox dialogs. Make both reasonably attractive. Some possible layouts (though not necessarily what you will do) are shown in screen shots here.
Submission
Submit your project including the data file with which you tested. Follow the instructions from the Fact Sheet.