Yep, simpler is more better (in this case). But I like your solution because it can be easily reused. The listener class can be used by another form, custom code etc. A function is simpler, and simpler to understand but it is single use. But the listener class is generic as you describe it...