예제 #1
0
        //--------------------------------------------------------------------------------
        /// <summary>
        /// Shows the task dialog box.
        /// </summary>
        /// <param name="Title">The title.</param>
        /// <param name="MainInstruction">The main instruction.</param>
        /// <param name="Content">The content.</param>
        /// <param name="ExpandedInfo">The expanded info.</param>
        /// <param name="Footer">The footer.</param>
        /// <param name="VerificationText">The verification text.</param>
        /// <param name="RadioButtons">The radio buttons.</param>
        /// <param name="CommandButtons">The command buttons.</param>
        /// <param name="Buttons">The buttons.</param>
        /// <param name="MainIcon">The main icon.</param>
        /// <param name="FooterIcon">The footer icon.</param>
        /// <returns></returns>
        public static DialogResult ShowTaskDialogBox( string Title,
                                                 string MainInstruction,
                                                 string Content,
                                                 string ExpandedInfo,
                                                 string Footer,
                                                 string VerificationText,
                                                 string RadioButtons,
                                                 string CommandButtons,
                                                 TaskDialogButtons Buttons,
                                                 SysIcons MainIcon,
                                                 SysIcons FooterIcon )
        {
            if ( VistaTaskDialog.IsAvailableOnThisOS && !ForceEmulationMode ) {
            // [OPTION 1] Show Vista TaskDialog
            VistaTaskDialog vtd = new VistaTaskDialog ( );

            vtd.WindowTitle = Title;
            vtd.MainInstruction = MainInstruction;
            vtd.Content = Content;
            vtd.ExpandedInformation = ExpandedInfo;
            vtd.Footer = Footer;

            // Radio Buttons
            if ( RadioButtons != "" ) {
              List<VistaTaskDialogButton> lst = new List<VistaTaskDialogButton> ( );
              string[ ] arr = RadioButtons.Split ( new char[ ] { '|' } );
              for ( int i = 0; i < arr.Length; i++ ) {
            try {
              VistaTaskDialogButton button = new VistaTaskDialogButton ( );
              button.ButtonId = 1000 + i;
              button.ButtonText = arr[ i ];
              lst.Add ( button );
            } catch ( FormatException ) {
            }
              }
              vtd.RadioButtons = lst.ToArray ( );
            }

            // Custom Buttons
            if ( CommandButtons != "" ) {
              List<VistaTaskDialogButton> lst = new List<VistaTaskDialogButton> ( );
              string[ ] arr = CommandButtons.Split ( new char[ ] { '|' } );
              for ( int i = 0; i < arr.Length; i++ ) {
            try {
              VistaTaskDialogButton button = new VistaTaskDialogButton ( );
              button.ButtonId = 2000 + i;
              button.ButtonText = arr[ i ];
              lst.Add ( button );
            } catch ( FormatException ) {
            }
              }
              vtd.Buttons = lst.ToArray ( );
            }

            switch ( Buttons ) {
              case TaskDialogButtons.YesNo:
            vtd.CommonButtons = VistaTaskDialogCommonButtons.Yes | VistaTaskDialogCommonButtons.No;
            break;
              case TaskDialogButtons.YesNoCancel:
            vtd.CommonButtons = VistaTaskDialogCommonButtons.Yes | VistaTaskDialogCommonButtons.No | VistaTaskDialogCommonButtons.Cancel;
            break;
              case TaskDialogButtons.OKCancel:
            vtd.CommonButtons = VistaTaskDialogCommonButtons.Ok | VistaTaskDialogCommonButtons.Cancel;
            break;
              case TaskDialogButtons.OK:
            vtd.CommonButtons = VistaTaskDialogCommonButtons.Ok;
            break;
              case TaskDialogButtons.Close:
            vtd.CommonButtons = VistaTaskDialogCommonButtons.Close;
            break;
              case TaskDialogButtons.Cancel:
            vtd.CommonButtons = VistaTaskDialogCommonButtons.Cancel;
            break;
              default:
            vtd.CommonButtons = 0;
            break;
            }

            switch ( MainIcon ) {
              case SysIcons.Information:
            vtd.MainIcon = VistaTaskDialogIcon.Information;
            break;
              case SysIcons.Question:
            vtd.MainIcon = VistaTaskDialogIcon.Information;
            break;
              case SysIcons.Warning:
            vtd.MainIcon = VistaTaskDialogIcon.Warning;
            break;
              case SysIcons.Error:
            vtd.MainIcon = VistaTaskDialogIcon.Error;
            break;
            }

            switch ( FooterIcon ) {
              case SysIcons.Information:
            vtd.FooterIcon = VistaTaskDialogIcon.Information;
            break;
              case SysIcons.Question:
            vtd.FooterIcon = VistaTaskDialogIcon.Information;
            break;
              case SysIcons.Warning:
            vtd.FooterIcon = VistaTaskDialogIcon.Warning;
            break;
              case SysIcons.Error:
            vtd.FooterIcon = VistaTaskDialogIcon.Error;
            break;
            }

            vtd.EnableHyperlinks = false;
            vtd.ShowProgressBar = false;
            vtd.AllowDialogCancellation = ( Buttons == TaskDialogButtons.Cancel ||
                                       Buttons == TaskDialogButtons.Close ||
                                       Buttons == TaskDialogButtons.OKCancel ||
                                       Buttons == TaskDialogButtons.YesNoCancel );
            vtd.CallbackTimer = false;
            vtd.ExpandedByDefault = false;
            vtd.ExpandFooterArea = false;
            vtd.PositionRelativeToWindow = true;
            vtd.RightToLeftLayout = false;
            vtd.NoDefaultRadioButton = false;
            vtd.CanBeMinimized = false;
            vtd.ShowMarqueeProgressBar = false;
            vtd.UseCommandLinks = ( CommandButtons != "" );
            vtd.UseCommandLinksNoIcon = false;
            vtd.VerificationText = VerificationText;
            vtd.VerificationFlagChecked = false;
            vtd.ExpandedControlText = "Hide details";
            vtd.CollapsedControlText = "Show details";
            vtd.Callback = null;

            // Show the Dialog
            DialogResult result = ( DialogResult ) vtd.Show ( ( vtd.CanBeMinimized ? null : Form.ActiveForm ), out VerificationChecked, out RadioButtonResult );

            // if a command button was clicked, then change return result
            // to "DialogResult.OK" and set the CommandButtonResult
            if ( ( int ) result >= 2000 ) {
              CommandButtonResult = ( ( int ) result - 2000 );
              result = DialogResult.OK;
            }
            if ( RadioButtonResult >= 1000 )
              RadioButtonResult -= 1000;  // deduct the ButtonID start value for radio buttons

            return result;
              } else {
            // [OPTION 2] Show Emulated Form
            TaskDialogForm td = new TaskDialogForm ( );
            td.Title = Title;
            td.MainInstruction = MainInstruction;
            td.Content = Content;
            td.ExpandedInfo = ExpandedInfo;
            td.Footer = Footer;
            td.RadioButtons = RadioButtons;
            td.CommandButtons = CommandButtons;
            td.Buttons = Buttons;
            td.MainIcon = MainIcon;
            td.FooterIcon = FooterIcon;
            td.VerificationText = VerificationText;
            td.Width = EmulatedFormWidth;
            td.BuildForm ( );

            DialogResult result = td.ShowDialog ( );

            RadioButtonResult = td.RadioButtonIndex;
            CommandButtonResult = td.CommandButtonClickedIndex;
            VerificationChecked = td.VerificationCheckBoxChecked;
            return result;
              }
        }
예제 #2
0
        //--------------------------------------------------------------------------------
        #region ShowTaskDialogBox
        //--------------------------------------------------------------------------------
        /// <summary>
        /// Shows the task dialog box.
        /// </summary>
        /// <param name="Title">The title.</param>
        /// <param name="MainInstruction">The main instruction.</param>
        /// <param name="Content">The content.</param>
        /// <param name="ExpandedInfo">The expanded info.</param>
        /// <param name="Footer">The footer.</param>
        /// <param name="VerificationText">The verification text.</param>
        /// <param name="RadioButtons">The radio buttons.</param>
        /// <param name="CommandButtons">The command buttons.</param>
        /// <param name="Buttons">The buttons.</param>
        /// <param name="MainIcon">The main icon.</param>
        /// <param name="FooterIcon">The footer icon.</param>
        /// <returns></returns>
        static public DialogResult ShowTaskDialogBox(string Title,
                                                     string MainInstruction,
                                                     string Content,
                                                     string ExpandedInfo,
                                                     string Footer,
                                                     string VerificationText,
                                                     string RadioButtons,
                                                     string CommandButtons,
                                                     TaskDialogButtons Buttons,
                                                     SysIcons MainIcon,
                                                     SysIcons FooterIcon)
        {
            if (VistaTaskDialog.IsAvailableOnThisOS && !ForceEmulationMode)
            {
                // [OPTION 1] Show Vista TaskDialog
                VistaTaskDialog vtd = new VistaTaskDialog( );

                vtd.WindowTitle         = Title;
                vtd.MainInstruction     = MainInstruction;
                vtd.Content             = Content;
                vtd.ExpandedInformation = ExpandedInfo;
                vtd.Footer = Footer;

                // Radio Buttons
                if (RadioButtons != "")
                {
                    List <VistaTaskDialogButton> lst = new List <VistaTaskDialogButton> ( );
                    string[] arr = RadioButtons.Split(new char[] { '|' });
                    for (int i = 0; i < arr.Length; i++)
                    {
                        try {
                            VistaTaskDialogButton button = new VistaTaskDialogButton( );
                            button.ButtonId   = 1000 + i;
                            button.ButtonText = arr[i];
                            lst.Add(button);
                        } catch (FormatException) {
                        }
                    }
                    vtd.RadioButtons = lst.ToArray( );
                }

                // Custom Buttons
                if (CommandButtons != "")
                {
                    List <VistaTaskDialogButton> lst = new List <VistaTaskDialogButton> ( );
                    string[] arr = CommandButtons.Split(new char[] { '|' });
                    for (int i = 0; i < arr.Length; i++)
                    {
                        try {
                            VistaTaskDialogButton button = new VistaTaskDialogButton( );
                            button.ButtonId   = 2000 + i;
                            button.ButtonText = arr[i];
                            lst.Add(button);
                        } catch (FormatException) {
                        }
                    }
                    vtd.Buttons = lst.ToArray( );
                }

                switch (Buttons)
                {
                case TaskDialogButtons.YesNo:
                    vtd.CommonButtons = VistaTaskDialogCommonButtons.Yes | VistaTaskDialogCommonButtons.No;
                    break;

                case TaskDialogButtons.YesNoCancel:
                    vtd.CommonButtons = VistaTaskDialogCommonButtons.Yes | VistaTaskDialogCommonButtons.No | VistaTaskDialogCommonButtons.Cancel;
                    break;

                case TaskDialogButtons.OKCancel:
                    vtd.CommonButtons = VistaTaskDialogCommonButtons.Ok | VistaTaskDialogCommonButtons.Cancel;
                    break;

                case TaskDialogButtons.OK:
                    vtd.CommonButtons = VistaTaskDialogCommonButtons.Ok;
                    break;

                case TaskDialogButtons.Close:
                    vtd.CommonButtons = VistaTaskDialogCommonButtons.Close;
                    break;

                case TaskDialogButtons.Cancel:
                    vtd.CommonButtons = VistaTaskDialogCommonButtons.Cancel;
                    break;

                default:
                    vtd.CommonButtons = 0;
                    break;
                }

                switch (MainIcon)
                {
                case SysIcons.Information:
                    vtd.MainIcon = VistaTaskDialogIcon.Information;
                    break;

                case SysIcons.Question:
                    vtd.MainIcon = VistaTaskDialogIcon.Information;
                    break;

                case SysIcons.Warning:
                    vtd.MainIcon = VistaTaskDialogIcon.Warning;
                    break;

                case SysIcons.Error:
                    vtd.MainIcon = VistaTaskDialogIcon.Error;
                    break;
                }

                switch (FooterIcon)
                {
                case SysIcons.Information:
                    vtd.FooterIcon = VistaTaskDialogIcon.Information;
                    break;

                case SysIcons.Question:
                    vtd.FooterIcon = VistaTaskDialogIcon.Information;
                    break;

                case SysIcons.Warning:
                    vtd.FooterIcon = VistaTaskDialogIcon.Warning;
                    break;

                case SysIcons.Error:
                    vtd.FooterIcon = VistaTaskDialogIcon.Error;
                    break;
                }

                vtd.EnableHyperlinks        = false;
                vtd.ShowProgressBar         = false;
                vtd.AllowDialogCancellation = (Buttons == TaskDialogButtons.Cancel ||
                                               Buttons == TaskDialogButtons.Close ||
                                               Buttons == TaskDialogButtons.OKCancel ||
                                               Buttons == TaskDialogButtons.YesNoCancel);
                vtd.CallbackTimer            = false;
                vtd.ExpandedByDefault        = false;
                vtd.ExpandFooterArea         = false;
                vtd.PositionRelativeToWindow = true;
                vtd.RightToLeftLayout        = false;
                vtd.NoDefaultRadioButton     = false;
                vtd.CanBeMinimized           = false;
                vtd.ShowMarqueeProgressBar   = false;
                vtd.UseCommandLinks          = (CommandButtons != "");
                vtd.UseCommandLinksNoIcon    = false;
                vtd.VerificationText         = VerificationText;
                vtd.VerificationFlagChecked  = false;
                vtd.ExpandedControlText      = "Hide details";
                vtd.CollapsedControlText     = "Show details";
                vtd.Callback = null;

                // Show the Dialog
                DialogResult result = ( DialogResult )vtd.Show((vtd.CanBeMinimized ? null : Form.ActiveForm), out VerificationChecked, out RadioButtonResult);

                // if a command button was clicked, then change return result
                // to "DialogResult.OK" and set the CommandButtonResult
                if (( int )result >= 2000)
                {
                    CommandButtonResult = (( int )result - 2000);
                    result = DialogResult.OK;
                }
                if (RadioButtonResult >= 1000)
                {
                    RadioButtonResult -= 1000; // deduct the ButtonID start value for radio buttons
                }
                return(result);
            }
            else
            {
                // [OPTION 2] Show Emulated Form
                TaskDialogForm td = new TaskDialogForm( );
                td.Title            = Title;
                td.MainInstruction  = MainInstruction;
                td.Content          = Content;
                td.ExpandedInfo     = ExpandedInfo;
                td.Footer           = Footer;
                td.RadioButtons     = RadioButtons;
                td.CommandButtons   = CommandButtons;
                td.Buttons          = Buttons;
                td.MainIcon         = MainIcon;
                td.FooterIcon       = FooterIcon;
                td.VerificationText = VerificationText;
                td.Width            = EmulatedFormWidth;
                td.BuildForm( );

                DialogResult result = td.ShowDialog( );

                RadioButtonResult   = td.RadioButtonIndex;
                CommandButtonResult = td.CommandButtonClickedIndex;
                VerificationChecked = td.VerificationCheckBoxChecked;
                return(result);
            }
        }