ExposesEvents
The ExposesEvents and Handles aspects make it easy to implement Event handlers and connect them to Fields of the class, especially when working with WinForms on .NET.
By annotating the field for control with ExposesEvents and marking each handler with Handles and the name of the event, the compiler will automatically generate code that connects the events, including taking care of readjusting the event assignments when the value of the field is changed to a different control. The field is implicitly upgraded to a Stored Property.
type
MainForm = partial class(System.Windows.Forms.Form)
public
[ExposesEvents]
btnHello: Button;
[Handles(btn.Click)]
method btnHello_Click(sender: System.Object; e: System.EventArgs);
begin
MessageBox.Show('Hello');
end;
end;
public partial class MainForm : System.Windows.Forms.Form
{
[ExposesEvents]
Button btnHello;
[Handles(btn.Click)]
void btnHello_Click(System.Object sender, System.EventArgs e)
{
MessageBox.Show("Hello");
}
}
public __partial class MainForm : System.Windows.Forms.Form {
@ExposesEvents
Button btnHello
@Handles(btn.Click)
func btnHello_Click(_ sender: System.Object; _ e: System.EventArgs) {
MessageBox.Show("Hello")
}
}
public __partial class MainForm : System.Windows.Forms.Form {
@ExposesEvents
Button btnHello;
@Handles(btn.Click)
void btnHello_Click(System.Object sender, System.EventArgs e) {
MessageBox.Show("Hello");
}
}
This matches semantics of how Visual Basic.NET handles events.