/// <summary>Creates a new Task Dialog setup and replaces the existing one. Note that the window will not be /// destroyed and that you should keep the existing TaskDialog reference (event handlers will still be /// registered). The existing Task Dialog will simply reset and use the options of the new one.</summary> /// <param name="nextDialog">An instance of Task Dialog, whose settings will be copied into the existing dialog. /// You may safely destroy the nextDialog instance after use (do not register to events on it).</param> public void Navigate(TaskDialog nextDialog) { //Prepare config structure of target dialog nextDialog.PreConfig(IntPtr.Zero); //Keep callback reference to the current dialog, since the nextDialog instance will eventually be destroyed nextDialog.config.pfCallback = config.pfCallback; //Copy queued messages while (nextDialog._msgQueue.Count > 0) { _msgQueue.Enqueue(nextDialog._msgQueue.Dequeue()); } //Navigate PostMessage(new Message(NativeMethods.TaskDialogMessages.TDM_NAVIGATE_PAGE, 0, nextDialog.config)); //Clean up nextDialog.PostConfig(); }
/// <summary>Creates a new Task Dialog setup and replaces the existing one. Note that the window will not be /// destroyed and that you should keep the existing TaskDialog reference (event handlers will still be /// registered). The existing Task Dialog will simply reset and use the options of the new one.</summary> /// <param name="nextDialog">An instance of Task Dialog, whose settings will be copied into the existing dialog. /// You may safely destroy the nextDialog instance after use (do not register to events on it).</param> public void Navigate(TaskDialog nextDialog) { //Prepare config structure of target dialog nextDialog.PreConfig(IntPtr.Zero); //Keep callback reference to the current dialog, since the nextDialog instance will eventually be destroyed nextDialog.config.pfCallback = config.pfCallback; //Copy queued messages while (nextDialog._msgQueue.Count > 0) _msgQueue.Enqueue(nextDialog._msgQueue.Dequeue()); //Navigate PostMessage(new Message(NativeMethods.TaskDialogMessages.TDM_NAVIGATE_PAGE, 0, nextDialog.config)); //Clean up nextDialog.PostConfig(); }