private void ReportPrinter_Load(object sender, EventArgs e)
        {
            this.printTimer = new Timer();
            this.printTimer.Tick += new EventHandler(printTimer_Tick);

            // load each sheet into a separate item in the dropdown list
            foreach (DataSet ds in dsArray)
            {
                string username = "";

                try
                {
                    username = ds.ExtendedProperties["user"].ToString();
                }
                catch
                {
                    ds.ExtendedProperties["user"] = "******";
                    username = ds.ExtendedProperties["user"].ToString();
                }

                tableSelector.Items.Add(username);

            }
            tableSelector.SelectedIndex = 0;

            // Hide print all if there's only one item to print.
            if (dsArray.Count <= 1)
            {
                btnPrintAll.Visible = false;
            }

            // Hide Statement Date selector if this isn't an invoice
            if (reportNumber != 2)
            {
                statementDate.Visible = false;
                invoiceDate.Visible = false;
                txtPayeeName.Visible = false;
            }

            // set up the IE page settings
            printSettings = new PrintSettings();
            pageSetup(false, ref printSettings);
        }
        /// <summary>
        /// Not Set: Reads page setup registry keys and clears their values. Stores old values in arguments.
        /// Set: Sets the values back to the arguments.
        /// </summary>
        private void pageSetup(bool set, ref PrintSettings printSettings)
        {
            Microsoft.Win32.RegistryKey pageKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Internet Explorer\\PageSetup", true);
            Microsoft.Win32.RegistryKey mainKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Internet Explorer\\Main", true);

            if (pageKey != null && mainKey != null)
            {
                // set back to original settings (as defined)
                if (set)
                {
                    setRegValue(pageKey, "header", printSettings.Header);
                    setRegValue(pageKey, "footer", printSettings.Footer);
                    setRegValue(mainKey, "Print_Background", printSettings.PrintBG);
                    setRegValue(pageKey, "margin_bottom", printSettings.BottomMargin);
                    setRegValue(pageKey, "margin_top", printSettings.TopMargin);
                    setRegValue(pageKey, "margin_left", printSettings.LeftMargin);
                    setRegValue(pageKey, "margin_right", printSettings.RightMargin);

                }
                else  // grab current settings from reg, store in args, set to desired.
                {
                    printSettings.Header = getRegValue(pageKey, "header");
                    printSettings.Footer = getRegValue(pageKey, "footer");
                    printSettings.BottomMargin = getRegValue(pageKey, "margin_bottom");
                    printSettings.TopMargin = getRegValue(pageKey, "margin_top");
                    printSettings.LeftMargin = getRegValue(pageKey, "margin_left");
                    printSettings.RightMargin = getRegValue(pageKey, "margin_right");
                    printSettings.PrintBG = getRegValue(mainKey, "Print_Background");

                    setRegValue(pageKey, "header", " ");
                    setRegValue(pageKey, "footer",  " ");
                    setRegValue(pageKey, "margin_bottom", "0.250000");
                    setRegValue(pageKey, "margin_top", "0.250000");
                    setRegValue(pageKey, "margin_left", "0.250000");
                    setRegValue(pageKey, "margin_right", "0.250000");
                    setRegValue(mainKey, "Print_Background", "yes");
                }

                pageKey.Close();
                mainKey.Close();
            }

            System.Threading.Thread.Sleep(50);
        }