Пример #1
0
 /// <summary>
 /// 预览框右键菜单
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void txtPreview_MouseDown(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Right)
     {
         ContextMenu cm = new ContextMenu();
         cm.MenuItems.Add(new MenuItem("撤销", new EventHandler((object object_sender, EventArgs EventArgs_e) => { this.txtEdit.Undo(); }))
         {
             Enabled = (this.txtEdit.undoStack.Count > 0)
         });
         cm.MenuItems.Add(new MenuItem("剪切", new EventHandler((object object_sender, EventArgs EventArgs_e) => { this.txtPreview.Cut(); }))
         {
             Enabled = (this.txtPreview.SelectionLength > 0)
         });
         cm.MenuItems.Add(new MenuItem("复制", new EventHandler((object object_sender, EventArgs EventArgs_e) => { this.txtPreview.Copy(); }))
         {
             Enabled = (this.txtPreview.SelectionLength > 0)
         });
         cm.MenuItems.Add(new MenuItem("粘贴", new EventHandler((object object_sender, EventArgs EventArgs_e) =>
         {
             this.txtPreview.lockTextChange = true;
             this.txtPreview.Paste();
             TextConvert.ConvertToEditTextBox(this.txtPreview, this.txtEdit);
             this.txtPreview.lockTextChange = false;
         })));
         cm.MenuItems.Add(new MenuItem("删除", new EventHandler((object object_sender, EventArgs EventArgs_e) => { this.txtPreview.SelectedText = string.Empty; }))
         {
             Enabled = (this.txtPreview.SelectionLength > 0)
         });
         cm.MenuItems.Add(new MenuItem("全选", new EventHandler((object object_sender, EventArgs EventArgs_e) => { this.txtPreview.SelectAll(); })));
         cm.Show(this.txtPreview, e.Location);
     }
 }
Пример #2
0
 /// <summary>
 /// 设置渐变
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnGradual_Click(object sender, EventArgs e)
 {
     if (lastFocus is MyTextBox)
     {
         TextConvert.SetTxtEditGradual(txtEdit, btn1stColor.BackColor, btn2ndColor.BackColor);
         TextConvert.ConvertToPreviewTextBox(txtEdit, txtPreview);
     }
     else if (lastFocus is MyRichTextBox)
     {
         TextConvert.SetTxtPreviewGradual(txtPreview, btn1stColor.BackColor, btn2ndColor.BackColor);
         TextConvert.ConvertToEditTextBox(txtPreview, txtEdit);
     }
 }
Пример #3
0
 /// <summary>
 /// 设置颜色
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnSetColor_Click(object sender, EventArgs e)
 {
     if (lastFocus is MyTextBox)
     {
         TextConvert.SetTxtEditSingleColor(txtEdit, btn1stColor.BackColor);
         TextConvert.ConvertToPreviewTextBox(txtEdit, txtPreview);
     }
     else if (lastFocus is MyRichTextBox)
     {
         TextConvert.SetTxtPreviewSingleColor(txtPreview, btn1stColor.BackColor);
         TextConvert.ConvertToEditTextBox(txtPreview, txtEdit);
     }
 }
Пример #4
0
 private void txtPreview_TextChanged(object sender, EventArgs e)
 {
     TextConvert.ConvertToEditTextBox(txtPreview, txtEdit);
 }
Пример #5
0
 private void btnRedo_Click(object sender, EventArgs e)
 {
     txtEdit.Redo();
     TextConvert.ConvertToPreviewTextBox(txtEdit, txtPreview);
 }
Пример #6
0
        public void ReLoad()
        {
            #region 初始化标签
            WinApi.Label lblStatic = new WinApi.Label(this.hWnd, IntPtr.Zero, StaticClassName, null); // 搜索原窗口中的标签
            this.hStatic        = lblStatic.Handle;                                                   // 保存标签句柄
            this.lblStatic.Text = lblStatic.Text;                                                     // 从原窗口获取标签文本并设置到模拟窗口
            #endregion

            #region 初始化文本框
            WinApi.TextBox txtEdit = new WinApi.TextBox(this.hWnd, IntPtr.Zero, EditClassName, null);                 // 搜索原窗口中的文本框
            this.hEdit = txtEdit.Handle;                                                                              // 保存文本框句柄
            this.txtEdit.lockTextChange = true;                                                                       // 使文本框进入代码修改模式
            this.txtEdit.Text           = txtEdit.Text;                                                               // 从原窗口获取文本框文本并设置到模拟窗口
            this.txtEdit.lastText       = new MyTextBox.UndoRedoInfo(this.txtEdit.Text, this.txtEdit.SelectionStart); // 设置文本框文本为最后修改的文本
            TextConvert.ConvertToPreviewTextBox(this.txtEdit, this.txtPreview);                                       // 强制将文本转化到预览框
            this.lastFocus = this.txtEdit;                                                                            // 设置最后焦点在基础文本框
            this.txtEdit.lockTextChange = false;                                                                      // 离开代码修改模式
            this.txtEdit.SelectAll();                                                                                 // 选取所有文本
            #endregion

            #region 初始化确定按钮
            WinApi.Button btnOk = new WinApi.Button(this.hWnd, this.hEdit, ButtonClassName, null); // 搜索原窗口中的确定按钮
            this.hBtnOk     = btnOk.Handle;                                                        // 保存确定按钮句柄
            this.btnOk.Text = btnOk.Text;                                                          // 从原窗口获取确定按钮文本并设置到模拟窗口
            #endregion

            #region 初始化取消按钮
            WinApi.Button btnCancel = new WinApi.Button(this.hWnd, this.hBtnOk, ButtonClassName, null); // 搜索原窗口中的取消按钮
            this.hBtnCancel     = btnCancel.Handle;                                                     // 保存取消按钮句柄
            this.btnCancel.Text = btnCancel.Text;                                                       // 从原窗口获取取消按钮文本并设置到模拟窗口
            #endregion

            #region 初始化窗口
            WinApi.Window window = new WinApi.Window(this.hWnd); // 创建原窗口实例
            this.Location = window.Location;                     // 设置模拟窗口的位置在原窗口的位置上

            if (Config.LoadDialogSize(this) == false)
            {
                this.Width  = window.Width;
                this.Height = window.Height * 2;
            }

            this.Text = window.Text; // 从原窗口获取标题并设置到模拟窗口
            window.Hide();           // 隐藏原窗口
            #endregion

            #region 初始化用户使用的颜色
            Config.LoadColor(btn1stColor);
            Config.LoadColor(btn2ndColor);
            Config.LoadColor(btn3rdColor);
            Config.LoadColor(btn4thColor);
            #endregion

            #region 初始化提示
            ToolTip toolTip = new ToolTip();
            switch (Program.language)
            {
            case 0:
                toolTip.SetToolTip(this.btn1stColor, "点击以选择主颜色");
                toolTip.SetToolTip(this.btn2ndColor, "点击鼠标左键以选取颜色" + Environment.NewLine + "点击鼠标右键以与主颜色交换颜色");
                toolTip.SetToolTip(this.btn3rdColor, "点击鼠标左键以选取颜色" + Environment.NewLine + "点击鼠标右键以与主颜色交换颜色");
                toolTip.SetToolTip(this.btn4thColor, "点击鼠标左键以选取颜色" + Environment.NewLine + "点击鼠标右键以与主颜色交换颜色");
                toolTip.SetToolTip(this.btnSetColor, "点击以设置选择文本的颜色");
                toolTip.SetToolTip(this.btnGradual, "点击以使用主颜色和第一候选色对选择文本进行渐变");
                toolTip.SetToolTip(this.btnUndo, "撤销" + Environment.NewLine + "(Ctrl+Z)");
                toolTip.SetToolTip(this.btnRedo, "重做" + Environment.NewLine + "(Ctrl+Y)");
                toolTip.SetToolTip(this.btnOk, "快捷键Ctrl+Enter");
                break;

            case 1:
                toolTip.SetToolTip(this.btn1stColor, "點擊以選擇主顏色");
                toolTip.SetToolTip(this.btn2ndColor, "點擊鼠標左鍵以選取顏色" + Environment.NewLine + "點擊鼠標右鍵以與主顏色交換顏色");
                toolTip.SetToolTip(this.btn3rdColor, "點擊鼠標左鍵以選取顏色" + Environment.NewLine + "點擊鼠標右鍵以與主顏色交換顏色");
                toolTip.SetToolTip(this.btn4thColor, "點擊鼠標左鍵以選取顏色" + Environment.NewLine + "點擊鼠標右鍵以與主顏色交換顏色");
                toolTip.SetToolTip(this.btnSetColor, "點擊以設置選擇文本的顏色");
                toolTip.SetToolTip(this.btnGradual, "點擊以使用主顏色和第一候選色對選擇文本進行漸變");
                toolTip.SetToolTip(this.btnUndo, "撤銷" + Environment.NewLine + "(Ctrl+Z)");
                toolTip.SetToolTip(this.btnRedo, "重做" + Environment.NewLine + "(Ctrl+Y)");
                toolTip.SetToolTip(this.btnOk, "快捷鍵Ctrl+Enter");
                break;

            default:
                break;
            }
            #endregion

            //this.Activate();// 激活当前窗口
        }