Inheritance: System.Windows.Forms.TextBox
        public WorkPage()
        {
            //logDocument
            InitLogDocument();

            //steg
            Steganographer = new Steganographer();
            Steganographer.Feedback += Steganographer_Feedback;

            //folder
            folderDialog = new FolderBrowserDialog();
            folderDialog.ShowNewFolderButton = true;

            //save
            saveDialog = new SaveFileDialog();
            saveDialog.Title = App.Name + " - Save";
            saveDialog.DefaultExt = ".bmp";
            saveDialog.AddExtension = true;
            saveDialog.Filter =
                "BITMAP Image (.bmp)|*.bmp|PNG File (.png)|*.png|JPG file (.jpg)|*.jpg" +
                "|JPEG file (.jpeg)|*.jpeg|HTML file (.html)|*.html|HTML file (.htm)|*.htm|XML file (.xml)|*.xml|All files|*.*";

            //open
            openDialog = new OpenFileDialog();
            openDialog.Title = App.Name + " - Open";
            openDialog.DefaultExt = ".*";
            openDialog.AddExtension = true;
            openDialog.Multiselect = false;
            openDialog.Filter =
                "All files|*.*|BITMAP Image (.bmp)|*.bmp|PNG File (.png)|*.png|JPG file (.jpg)|*.jpg" +
                "|JPEG file (.jpeg)|*.jpeg|Text file (.txt)|*.txt|HTML file (.html)|*.html|" +
                "HTML file (.htm)|*.htm";

            //btnSelectFile
            btnSelectFile = new Button()
            {
                Text = "Select File...",
                Location = new Point(offset, offset)
            };
            btnSelectFile.Click += btnSelectFile_Click;

            //btnSelectFolder
            btnSelectFolder = new Button() { Text = "Select Folder..." };
            btnSelectFolder.Click += btnSelectFolder_Click;

            //txtSource
            txtSource = new HintedTextBox("enter source file(s)")
            {
                Location = new Point(offset, btnSelectFile.Location.Y + btnSelectFile.Height + offset)
            };

            //txtPassword
            txtPassword = new HintedTextBox("enter password")
            {
                IsPasswordBox = true,
            };
            //a hack to make the hint show as normal text, not password chars:
            //after setting its IsPasswordBox = true, call HideHint(), then ShowHint()
            txtPassword.HideHint();
            txtPassword.ShowHint();

            //chckDeleteSource
            chckDeleteSource = new CheckBox()
            {
                Checked = false,
                Text = "Delete source files",
                TextAlign = ContentAlignment.MiddleLeft
            };

            //chckShowPassword
            chckShowPassword = new CheckBox()
            {
                Checked = false,
                Text = "Show password",
                TextAlign = ContentAlignment.MiddleLeft
            };
            chckShowPassword.CheckedChanged += chckShowPassword_CheckedChanged;

            //pnlControlPanel
            pnlControlPanel = new Panel();
            pnlControlPanel.BackColor = SystemColors.Control;
            pnlControlPanel.Dock = DockStyle.Fill;
            pnlControlPanel.Controls.AddRange(new Control[] { btnSelectFile, btnSelectFolder, txtSource });

            //listView
            listView = new ListView();
            listView.AllowColumnReorder = false;
            listView.CheckBoxes = false;
            listView.Dock = DockStyle.Fill;
            listView.FullRowSelect = true;
            listView.MultiSelect = false;
            listView.ShowItemToolTips = true;
            listView.View = View.Details;
            listView.Columns.Add("%", 20, HorizontalAlignment.Left);
            listView.Columns.Add("File", 100, HorizontalAlignment.Left);
            listView.Columns.Add("Message", 100, HorizontalAlignment.Left);

            //searchBox
            searchBox = new ToolStripTextBox() { };
            searchBox.ToolTipText = "search";
            searchBox.KeyUp += searchBox_KeyUp;

            //btnSaveLog
            btnSaveLog = new ToolStripButton()
            {
                //Image = Properties.Resources.Save,
                //ToolTipText = "Save Log"

                Text = "Save Log"
            };
            btnSaveLog.Click += btnSaveLog_Click;

            //stripListViewToolBar
            stripListViewToolBar = new ToolStrip();
            stripListViewToolBar.Dock = DockStyle.Fill;
            stripListViewToolBar.Items.Add(searchBox);
            stripListViewToolBar.Items.Add(new ToolStripSeparator());
            stripListViewToolBar.Items.Add(btnSaveLog);

            //tscListView
            tscListViewCont = new ToolStripContainer();
            tscListViewCont.Dock = DockStyle.Fill;
            tscListViewCont.TopToolStripPanel.Controls.Add(stripListViewToolBar);
            tscListViewCont.ContentPanel.Controls.Add(listView);

            //splitMain
            splitMain = new SplitContainer();
            splitMain.Dock = DockStyle.Fill;
            splitMain.BackColor = Color.Black;
            splitMain.IsSplitterFixed = true;
            splitMain.Orientation = Orientation.Vertical;
            splitMain.Panel1.Controls.Add(pnlControlPanel);
            splitMain.Panel2.Controls.Add(tscListViewCont);
            splitMain.SplitterDistance = 3;

            //this
            this.Controls.Add(splitMain);
            this.SizeChanged += WorkPage_Paint;
        }
        public EncryptionPage()
        {
            //picMaskImage
            picMaskImage = new PictureBox()
            {
                BackColor = Color.White,
                BackgroundImageLayout = ImageLayout.Stretch,
                BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle,
                Location = new Point(offset, txtSource.Location.Y + txtSource.Height + offset)
            };
            picMaskImage.Click += picMaskImage_Click;

            //chckShowPassword
            chckShowPassword.CheckedChanged += chckShowPassword_CheckedChanged;

            //txtConfirmPwd
            txtConfirmPwd = new HintedTextBox("confirm password")
            {
                IsPasswordBox = true,
            };
            //a hack to make the hint show as normal text, not password chars:
            //after setting its IsPasswordBox = true, call HideHint(), then ShowHint()
            txtConfirmPwd.HideHint();
            txtConfirmPwd.ShowHint();

            //btnEncrypt
            btnEncrypt = new Button()
            {
                BackColor = Color.Coral,
                ForeColor = Color.White,
                FlatStyle = System.Windows.Forms.FlatStyle.Flat,
                Text = "Encrypt"
            };
            btnEncrypt.Click += btnEncrypt_Click;

            //pnlControlPanel
            pnlControlPanel.Controls.AddRange(new Control[] { picMaskImage,
                chckDeleteSource, txtPassword, chckShowPassword, txtConfirmPwd, btnEncrypt });

            //this
            this.Text = "Encryption Page";
            this.SizeChanged += EncryptionPage_Paint;
        }