One of the interesting features of C# is the ability to add custom user controls to your forms. If you have some specific functionality centered around a group of form controls that you use repeatedly, you can save it as a custom control in a class library and then add it to other applications. This is a great example of code reuse and saves a lot of time.
I’m starting to get the hang of creating demo videos with Camtasia and other tools and my latest videos show how to create user controls and implement them within Visual Studio.
Very often, you’ll want your custom controls to communicate with the host application, passing data back and forth and one way to do this is to have your control raise custom events at specific times. The host application listens for these events and responds as it needs to. This is a very powerful ability that enables your classes to interact in more dynamic ways. Once you understand how to raise and catch custom events, you’re no longer dependent on the C# event model and your applications can signal and respond to any condition you want them to.
The second video builds on the first part to show how to add custom events to your classes.
I encourage you to follow along with the videos and try creating the controls yourself. Also, experiment with your own ideas so that you’ll better understand the concepts.
If you would like to read more about creating custom events in C#, you can find more detail on the Microsoft website at the following links:
Summer vacation has mercifully arrived for me and my students. Unlike many teachers, I’m at the school through most of the Summer. My students get three weeks off – I get one week followed by a couple weeks of what will essentially be teacher workdays. Judging from the sympathetic looks I was getting from other staff members and the sudden, dramatic drop-off in attendance of my classes, I’m thinking the break didn’t come a moment too soon.
The following is the text from my speech to the Ocala Early Bird Toastmasters on May 19, 2018. If you’re in Ocala and would like to learn more about leadership and public speaking, come join us for breakfast on Saturday mornings at The Egg and I.
My name is Andrew Comeau and I am … a public school teacher?
I say it that way because It’s been a study in irony for me. If you told me just a couple years ago that I’d be teaching a nighttime programming class for vocational students, I’d have laughed. When others suggested I should be a teacher, I said it wasn’t for me.
Then when I was told that a new programming course was needed in Ocala and I had the choice of designing and teaching it myself or hoping someone else did it well, I automatically said Yes.
Looking over my web presence earlier this year, I decided to do some consolidation. I had three sites – Drewslair.com, which has been in operation for 15 years, my business site, ComeauSoftware.com, which hasn’t changed much for quite awhile and the site for my networking group, OcalaITProfessionals.com, which needs a lot more attention and content.
Comeau Software Solutions is my consulting business which, in one way or another, is meant to encompass any technology-related business that I do from my work with clients to my various writing projects to some future projects I have ideas for. I decided it was time to let it take its proper place and that means merging ComeauSoftware.com and Drewslair.com into one site.
I’ll be keeping the Drewslair.com domain for at least another year to maintain the many links that have been made to it over the years. One of the things I like about modern web hosting is how domains and sites can be moved around pretty quickly with just a few changes in settings.
I’m thinking about some changes to the look and feel of the site but all the content will remain and I hope to provide a lot more great articles and posts in the coming year.
My latest challenge to my database programming students was to create a C# class that would perform various number conversions, starting with Arabic numbers (0 to 3999) to Roman numerals and vice versa.
I required that all public functions in the class needed to be declared as static, so that they could be called from outside the class without having to create a new instance. Also, the class was to be completely portable; it must not use any functions such as message boxes that would prevent them from copying the entire class into any other type of project and referencing it. Of course, all code must also have error handling and commenting.
My students came up with various solutions and I think some had more help from StackOverflow than others. I know that one of them learned the hard way not to search for “XXX” on Google.
One popular strategy was to use the C# Dictionary class to hold the Roman characters and their equivalents. I don’t always get around to writing up my own solutions to these challenges before I assign them, so I happily swiped that strategy for my own code which was otherwise written from scratch. I ended up using the SortedDictionary class instead.
I started my (more or less) serious database development training many years ago in Microsoft Access. One of my favorite controls was the Combo Box, a nice little drop-down field that enabled the user to select one of many values but collapsed down onto a single line. The Combo Box control in Access was very configurable and one of the nice features was that you could display one value while actually saving another value to the field the control was bound to. For example, you could display the Customer Name while saving the associated CustomerID that the database would use to reference the customer record.
C# also has a Combo Box control that can do much the same thing but offers a lot more options through code. The .NET version maintains a collection of objects, any kind of objects, and displays whatever text is presented by the object’s ToString() method. The code can then use any other property of the object to carry out operations in the background.
The .NET framework has a few different automated methods for managing connections to SQL Server and other databases. The framework has been around since 2003 and various versions have introduced new, improved data management tools while maintaining the old ones for backward compatibility.
It’s still possible, however to retrieve data from SQL Server and other database systems with just a few lines of code and it’s important to know how to do this to truly understand how the communication between SQL Server and a language like C# actually works.
For the past six months, I’ve been teaching night classes in database programming and my students are just about ready to take Microsoft’s 98-364 exam. Now, we’re transitioning over to C# programming for the next phase of the program but I have to keep their SQL skills fresh for the exam. Tonight, it was time to teach them to understand the binary number system. I dropped some hints on it a couple of months back to brace them but now it was time to get it done with once and for all.
Then, as I like to do with this class, I came up with a lesson plan that would incorporate the best of both subjects …
One of the great things about MySQL is its versatility of installation. It can be setup as a Windows service and trimmed out with some extra utilities or it can be installed on a flash drive as a portable server.
The easiest installation is certainly the Windows Installer with a wizard that will guide you through the installation of the server and all the options you want. Myself, I still like self-contained programs that won’t interfere with anything else on my system and can be easily removed without leaving hidden traces. I also don’t like adding a lot of stuff to my Windows startup.
If you have a basic comfort with using the Windows command line and control panel, doing a minimal installation of MySQL is not difficult once you understand a few steps. The full documentation is available for reference on MySQL.com but here are the essentials to get you started.