I suggest creating your own control inheritedfrom ListBox. Create listBox1 from your class instead of the original ListBox. Inside your class, provide methods for adding and removing elements. These functions would fire as appropriatean event defined in your class to signal wheter the list has changed from empty to non-empty or viceversa. You can then connect your client code to that event to enable/disable the button1.