Search code examples
c#wpfvisual-studiosilverlightxaml

Specify Double-Click event for a Control in Visual Studio Designer


When you Double-Click on a Control in the Visual Studio Designer, you automatically subscribe to some event and an Event Handler is generated in the code behind file.

Double-Clicking on the following Controls subscribes to the corresponding event

  • UserControl - Loaded
  • Button - Click
  • TextBox - TextChanged
  • Grid - No event
    etc.

How is this specified, is it a Visual Studio setting? Can this be overrideen and how can you specify which event you want to link to Double-Click for e.g. a Custom Control?

Thanks


Solution

  • There is a DefaultEventAttribute that controls can specify. The designer knows to read this attribute and uses it to determine which event to use as the default.

    [DefaultEvent("DoubleClick")]
    public class MyClass {
    
        public event EventHandler DoubleClick;
    
    }
    

    There is also a DefaultPropertyAttribute which is significantly less useful. It just determines the default property name to select in the property grid when the control is selected in the designer.