
Learn to create Windows desktop apps with Windows Forms, explore dot net options like WPF, UWP, and XAML, and review Visual Studio editions and SQL Server usage.
Open an invoice total form in Visual Studio and inspect the project structure. Explore labels, text boxes, and two buttons for input and output, and keyboard shortcuts that trigger actions.
Explore how form and control properties shape the Windows Forms interface, including form name, text, position, and size; learn to edit multiple objects, view grouped properties, and use help hints.
Create a new Windows Forms project in Visual Studio for the .NET Framework, name it invoice calculator, and design a form with labels, text boxes, and calculate and exit buttons.
Visual Studio highlights syntax and build errors, guiding fixes and refactoring. Debugging uses breakpoints and step-through to uncover logical errors and test Windows Forms.
Explore common numeric and string data types in C#, including value types versus reference types, bits and bytes, integers, decimals, Unicode characters, ASCII, booleans, and how variables and constants relate.
Declare and initialize variables in C#, recognize that they can change during execution, use the var keyword for type inference, and declare constants with const alongside meaningful names.
Learn the order of precedence for arithmetic operations, including how prefix and postfix increments affect evaluation, and how parentheses override precedence to ensure predictable results.
Declare a variable in a method for method scope, or in the class for class scope, to allow access across methods and prevent a build error from out-of-scope references.
Explore how enumerations define a set of related constants, where each constant is a member. Learn default values starting at zero and how to assign explicit values in Windows Forms.
Learn how value types cannot store null values, while reference types can, and how nullable value types enable unknown values in C#. Use the ?? and ??= operators.
Enhance a simple invoice application by adding inputs and read-only displays to calculate a running total, count invoices, compute the average invoice amount, and show the last entered subtotal.
Format and display running totals by converting numbers to strings, showing total invoices, total amount as currency, and average as currency, then clear input and return focus for next invoice.
Create a clear button click event to reset text boxes and running totals in a simple invoice app, refocusing input and preserving the discount percent.
Learn how boolean expressions drive control structures, master six relational operators, and use short-circuit and logical operators to build efficient, readable conditions, avoiding not operator when possible.
Master the switch statement in C# to execute actions by a match expression with case labels, a default, and the no fall-through rule, including discount percent by customer type.
Add a customer type with a 40% discount under 500 and 50% for 500 or more, using if statements; also support uppercase and lowercase inputs for R, C, and D.
Convert if blocks to switch-case logic in an invoice calculator, handling customer types r, c, d with specific subtotals and a default 40 percent discount, including lowercase cases.
Explore for loops in C#, including initialization, boolean condition, and increment expressions, with examples counting, summing, and computing monthly payments.
Capture monthly investment, yearly interest rate, and years on calculation. Compute months and monthly rate, then display the future value in a read-only text box.
Learn to calculate monthly future value with a for loop, updating a decimal value and displaying currency-formatted results from monthly investment and interest.
Initialize input values from text boxes, convert them to numbers with the Convert class, and compute future value by looping monthly investments with a monthly rate, then display the result.
Learn to create and call methods to organize code, use access modifiers, return types, and parameters, and understand method overloading with examples like get discount percent and calculate future value.
Create and wire event handlers for any form or control event using the form designer, including multi-event handling with a single handler. Understand naming and generation from the events list.
Learn to use a single event handler to manage multiple text box events in a Windows Forms app, including clearing future value when inputs change, with a private calculation method.
Examine the generated designer code for a Windows Forms app, including initialize components and event wiring (calculate click, text change), and learn when to edit code vs. the form designer.
Use a get invoice amount method that accepts customer type and subtotal to compute discount percent, discount amount, and invoice total.
Validate user input by checking required values, converting text to numbers, and enforcing range limits with error messages until all entries are valid.
Centralize validation for multiple form entries, checking decimals for market investment and interest rate, validating integers with the N32 method, enforcing range, and displaying error messages.
Implement a unified range validation method for decimals and integers in a Windows Forms app, using try-parse and range checks to produce error messages displayed in a message box.
Validate user input with range, decimal, and integer checks to safely compute future value; implement reusable, robust methods and error messaging for reliable financial calculations.
Learn to assign values to array elements in C# using zero-based indexing, handle out-of-range errors, and declare arrays with explicit length or inferred types (var).
Learn how to use foreach loops to work with arrays in C# and compare it to for loops, showing examples that display elements and compute averages without counters.
Demonstrates working with rectangular arrays, using get length to determine row and column counts, indexing elements, and building a string displayed in a message box with nested for loops.
Learn how to define C# methods that return and accept arrays, use bracketed return types, and apply the params keyword for array or value arguments.
Learn to manipulate a list in C# using collection initializers, index access, insert and remove operations, foreach to display elements, and contains and binary search for efficient queries.
Explore queue and stack collections in C# by applying enqueue and dequeue, push and pop, and compare fifo and lifo behavior using while loops.
Explore ArrayList usage in C# by comparing typed and untyped collections, master boxing and unboxing for value types, and casting on retrieval to the appropriate type.
Learn to build an invoice totals calculator using both an array and a list, populating totals and displaying identical results via message boxes at exit.
Explore dates and times in C# using the DateTime structure. Create values with new DateTime(year, month, day, hour, minute, second, millisecond) or Parse and TryParse, format, and use ticks.
Learn to use the datetime structure to get current date/time, date-only values, and formatting, plus day of year, days in month, leap year, and weekend vs weekday.
Discover how to work with strings in C# by creating string objects or string builders, using properties and methods, indexing characters, and splitting strings into substrings.
Learn to enable nullable reference types in C# 8, understand non-nullable defaults, declare nullable references with ?, read compiler warnings, and suppress with ! at project or file level.
Learn to use the string builder class to create mutable strings for efficient appending, inserting, removing, or replacing characters with dynamic capacity in C#.
Learn to format dates and times using the class's formatting method and codes, mirroring numeric formatting, with examples to guide you.
Build a simple c# windows forms date handler that calculates a person’s age and the days between two dates, showing day of week born and supporting future or past dates.
Calculate days between today and a user-entered future date using a TimeSpan, display current date, future date, and days until in a message box, with negative days for past dates.
Compute the user's age from their birth date when the calculate button is clicked, adjusting for partial years, and show the result with a long date format.
Learn to implement a string manipulation feature in a C# Windows Forms app that capitalizes the first letter, lowercases the rest, and extracts first and last names from user input.
Trim whitespace, remove special characters, and collect digits only, then format a 10-digit number with hyphens and display the result in a message box.
Learn to validate and parse currency input with the globalization namespace, using TryParse and currency number styles to support different cultures in a future value application.
Learn to build Windows applications with two or more forms by creating new forms from templates or adding existing ones, using the add form dialog, and adjusting namespaces.
Learn to use the message box class to display dialogs with text, caption, buttons, and a default button, using the show method, and interpret user responses via dialog result enumeration.
Learn to use a dialog box to cancel the form closing event, prompt to save data, and conditionally close based on yes, no, or cancel choices.
Build a customer form from scratch for the payment application, adding a combo box for customer names, a label for the payment method, and save and exit buttons.
Create a save data method that builds a billing message for the customer form, including card type, number, expiration date, or a bill, with default billing and form tagging.
Debug future value application in a C# Windows Forms course by adjusting the loop to display yearly values in a combo and list box for 20 years at 7 percent.
Learn object instantiation from a class by creating product instances with new or default constructors, and using object initialization and implicit typing to set properties.
Learn how to declare and use fields in a class, including instance and static fields and access modifiers. Understand read-only fields, similar to constants, but set at runtime.
Explore how constructors initialize object state, overload constructors with parameters, and use this to reference current class members, including default and parameterized forms.
Explore static members and static classes in C#, accessing members without creating objects, using static methods for validation, and referencing static members via class name or using directives.
Manage products with a simple product maintenance app using three classes—the product, a file-handling class, and a validator—and forms to add, delete, and display products from a file.
Demonstrate object oriented programming by building two Windows forms: a main product list with add, delete, and exit, plus a new product form for code, description, and price.
Build a public product class with code, description, and price properties, including constructors and overloaded display text methods to format data for a Windows Forms app.
Demonstrates deleting a selected product after user confirmation, removing it from the products list, saving the updated list to the product DB, and refreshing the list box.
Trigger the add product button to open the new product form, capture input, create a new product, save, and refresh the list box.
Explore auto implemented properties in C#, where the compiler creates a private backing field and exposes get and set accessors, including init-only properties via the init keyword.
Learn expression-bodied properties and expression body accessors in C#, returning expressions instead of private fields, and refactor read-only and writable properties with get and set bodies.
Create a customer class with public constructors, properties for first name, last name, and email, plus a get display text method, and introduce a customer db and validator class.
Create a public static save customer method that writes each customer's first name, last name, and email to a file using a file stream and stream writer.
Develop a customer maintenance form by loading a static customer database into a private list, and refreshing a listbox with each customer's first name, last name, and email.
If you’re ready to add C# to your skill set, there’s no better way to do that than with this course. The course mimics typical college C# course. It uses a mix of theory and practice to help you master C# effectively and quickly.
The exercises for each section guide you through the development of C# Windows Forms applications and challenge you to apply what you’ve learned in new ways. Because you can download the starting points for these exercises from Resources section of each exercise, you get the maximum amount of practice in a minimum of time. And because you can also download the solutions, too, you can check your work and correct any misconceptions right away.
All of the examples presented in this course are drawn from business applications. This is deliberate as it helps you understand OOP aspects of C# programming. This becomes especially apparent in the object-oriented programming section, where you are presented with business classes like customers, invoices, and products so you can see how object-oriented programming is used in the real world.
To help you develop applications at a professional level, this course presents complete applications. That way, you can see the relationships between the C# code, objects, properties, methods, and events that an application requires, which is essential to your understanding.
Each section also contains a lot of theory, some essential, other more advanced. Even if you are a more practical learner who prefers hands on exercises to Powerpoint slides, I am sure you will come to appreciate the huge amount of code snippets and detailed information the theory parts of this course has to offer. And, the theoretical videos are a great video reference that you can use quickly and effectively to learn more about any basic or advanced C# feature or programming concept.
So, if you are ready to boost your C# skills to the next level, this course is here to help and deliver concrete results.
See you in the course!