1. attach an anonymous delegate: [csharp] testButton1.TouchUpInside + = delegate {new UIAlertView ("TouchUpInside", "TouchUpInside handled", null, "OK", null ). show () ;}; 2.use a lambda expression: [csharp] testButton2.TouchUpInside + = (sender, ea) =>{ new UIAlertView ("Touch2", "TouchUpInside handled", null, "OK", null ). show () ;}; the cancellation event is "-=" 3. assign a delegate method: [csharp] testButton3.TouchUpInside + = HandleTouchUpInside; [csharp] private void HandleTouchUpInside (object sender, System. eventArgs e ){//...} 4. addTarget method: [csharp] btnForgetPwd. addTarget (this, new MonoTouch. objCRuntime. selector ("LoginSelector"), UIControlEvent. touchUpInside); [Export ("LoginSelector")] void OpenPlatform (){//...} the last method reveals that we can create dynamically. In this case, dynamic creation refers to configuration. Just think about it. If we leave the Mobile End alone, we will make some configuration on the pc end, check and select to construct an xml file, parse the xml file, pre-process the button event with a class library, and dynamically bind it with AddTarget. This is very convenient.