private void RBtn_Click(object sender, EventArgs e) { if (sender is RadioButton obj) { if (obj.Checked) { RadioButtonClick?.Invoke(this, e); } } }
/// <summary> /// Common native callback for Task Dialogs. /// Will route events to the user event handler. /// </summary> /// <param name="refData">TODO: Currently unused, would need complex marshaling of data.</param> internal IntPtr CommonCallbackProc(IntPtr hWnd, uint uEvent, UIntPtr wParam, IntPtr lParam, IntPtr refData) { _hwnd = hWnd; //Handle event switch ((NativeMethods.TaskDialogNotification)uEvent) { case NativeMethods.TaskDialogNotification.TDN_CREATED: //Dispatch buffered messages DispatchMessageQueue(); Created?.Invoke(this, EventArgs.Empty); break; case NativeMethods.TaskDialogNotification.TDN_NAVIGATED: //Dispatch buffered messages (copied in from the new task dialog we are navigating to) DispatchMessageQueue(); Navigating?.Invoke(this, EventArgs.Empty); break; case NativeMethods.TaskDialogNotification.TDN_BUTTON_CLICKED: var evtButtonClick = ButtonClick; if (evtButtonClick != null) { ClickEventArgs args = new ClickEventArgs((int)wParam); evtButtonClick(this, args); //Return value given by user to prevent closing (false will close) return((IntPtr)((args.PreventClosing) ? 1 : 0)); } break; case NativeMethods.TaskDialogNotification.TDN_HYPERLINK_CLICKED: HyperlinkClick?.Invoke(this, new HyperlinkEventArgs(Marshal.PtrToStringUni(lParam))); break; case NativeMethods.TaskDialogNotification.TDN_TIMER: var evtTick = Tick; if (evtTick != null) { var args = new TimerEventArgs((long)wParam); evtTick(this, args); //Return value given by user to reset timer ticks return((IntPtr)((args.ResetCount) ? 1 : 0)); } break; case NativeMethods.TaskDialogNotification.TDN_DESTROYED: //Set dialog as not "showing" and drop handle to window _hwnd = IntPtr.Zero; Destroyed?.Invoke(this, EventArgs.Empty); break; case NativeMethods.TaskDialogNotification.TDN_RADIO_BUTTON_CLICKED: RadioButtonClick?.Invoke(this, new ClickEventArgs((int)wParam)); break; case NativeMethods.TaskDialogNotification.TDN_DIALOG_CONSTRUCTED: Constructed?.Invoke(this, EventArgs.Empty); break; case NativeMethods.TaskDialogNotification.TDN_VERIFICATION_CLICKED: VerificationClick?.Invoke(this, new CheckEventArgs((uint)wParam == 1)); break; case NativeMethods.TaskDialogNotification.TDN_HELP: Help?.Invoke(this, EventArgs.Empty); break; case NativeMethods.TaskDialogNotification.TDN_EXPANDO_BUTTON_CLICKED: Expanding?.Invoke(this, new ExpandEventArgs((uint)wParam != 0)); break; } return(IntPtr.Zero); }