richTextBox的右键菜单“复制、粘贴、剪切、全选、删除、撤销、重做”
2012-05-02 17:21
603 查看
以前用richTextBox没发现它不像textbox那样有右键菜单,所以在点击右键时什么也没有,想复制粘贴都做不到,所以今天我抽空做了一个richTextBox的右键菜单。内容如下:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
richTextBox1.Text = "清音俗世留 纷争几时休\n" + "若能破名利 太虚任遨游";
}
private void copy_Click(object sender, EventArgs e)//复制
{
richTextBox1.Copy();
}
private void undo_Click(object sender, EventArgs e)//取消
{
if (richTextBox1.CanUndo)
{
richTextBox1.Undo();
}
}
private void selectall_Click(object sender, EventArgs e)//全选
{
richTextBox1.SelectAll();
}
private void delete_Click(object sender, EventArgs e)//清除
{
richTextBox1.Clear();
}
private void paste_Click(object sender, EventArgs e)//粘贴
{
if ( (richTextBox1.SelectionLength>0)&&(MessageBox.Show("是否覆盖选中的文本?", "覆盖", MessageBoxButtons.YesNo) == DialogResult.No))
richTextBox1.SelectionStart = richTextBox1.SelectionStart + richTextBox1.SelectionLength;
richTextBox1.Paste();
}
private void clip_Click(object sender, EventArgs e)//剪切
{
richTextBox1.Cut();
}
private void redo_Click(object sender, EventArgs e)//重做
{
if (richTextBox1.CanRedo)
richTextBox1.Redo();
}
private void richTextBox1_MouseUp(object sender, MouseEventArgs e)//控制右键菜单的显示
{
if (e.Button == MouseButtons.Right)
{
if (richTextBox1.CanRedo)//redo
redo.Enabled = true;
else
redo.Enabled = false;
if (richTextBox1.CanUndo)//undo
undo.Enabled = true;
else
undo.Enabled = false;
if (richTextBox1.SelectionLength > 0)
{
copy.Enabled = true;
clip.Enabled = true;
}
else
{
copy.Enabled = false;
clip.Enabled = false;
}
if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text))
paste.Enabled = true;
else
paste.Enabled = false;
contextMenuStrip1.Show(richTextBox1, new Point(e.X, e.Y));
}
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
richTextBox1.Text = "清音俗世留 纷争几时休\n" + "若能破名利 太虚任遨游";
}
private void copy_Click(object sender, EventArgs e)//复制
{
richTextBox1.Copy();
}
private void undo_Click(object sender, EventArgs e)//取消
{
if (richTextBox1.CanUndo)
{
richTextBox1.Undo();
}
}
private void selectall_Click(object sender, EventArgs e)//全选
{
richTextBox1.SelectAll();
}
private void delete_Click(object sender, EventArgs e)//清除
{
richTextBox1.Clear();
}
private void paste_Click(object sender, EventArgs e)//粘贴
{
if ( (richTextBox1.SelectionLength>0)&&(MessageBox.Show("是否覆盖选中的文本?", "覆盖", MessageBoxButtons.YesNo) == DialogResult.No))
richTextBox1.SelectionStart = richTextBox1.SelectionStart + richTextBox1.SelectionLength;
richTextBox1.Paste();
}
private void clip_Click(object sender, EventArgs e)//剪切
{
richTextBox1.Cut();
}
private void redo_Click(object sender, EventArgs e)//重做
{
if (richTextBox1.CanRedo)
richTextBox1.Redo();
}
private void richTextBox1_MouseUp(object sender, MouseEventArgs e)//控制右键菜单的显示
{
if (e.Button == MouseButtons.Right)
{
if (richTextBox1.CanRedo)//redo
redo.Enabled = true;
else
redo.Enabled = false;
if (richTextBox1.CanUndo)//undo
undo.Enabled = true;
else
undo.Enabled = false;
if (richTextBox1.SelectionLength > 0)
{
copy.Enabled = true;
clip.Enabled = true;
}
else
{
copy.Enabled = false;
clip.Enabled = false;
}
if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text))
paste.Enabled = true;
else
paste.Enabled = false;
contextMenuStrip1.Show(richTextBox1, new Point(e.X, e.Y));
}
}
}
相关文章推荐
- 为RichTextBox添加快捷功能菜单(复制, 剪切,粘贴,全选)
- 为RichTextBox添加快捷功能菜单(复制, 剪切,粘贴,全选)
- richtextbox 复制、粘贴、删除、全选
- 为RichTextBox添加快捷功能菜单(复制,粘贴,全选等)
- Qt之密码框不可全选、复制、粘贴无右键菜单等
- 记事本(含剪切、复制、粘贴、全选、撤销)核心设计
- Qt之密码框不可全选、复制、粘贴无右键菜单等
- richedit中加右键菜单:复制、粘贴、剪切等基本功能,代码如何写?
- vim 学习日志(1):剪切,复制,粘贴,删除,撤销
- Qt之密码框不可全选、复制、粘贴无右键菜单等
- Java右键菜单实现文本组件内容的的复制、粘贴、剪切功能
- java多文本框使用右键弹出菜单复制粘贴剪切功能实现
- RichTextBox实现鼠标右键(剪切,复制,粘贴)功能
- C#的richtextbox关联右键,右键点击出现复制,粘贴,剪切就可以
- silverlight:向TextBox添加右键菜单,菜单包括复制、粘贴、剪切、选择全部等四项功能!
- js屏蔽浏览器右键菜单,粘贴,复制,剪切,选中(转)
- 禁止另存网页、屏蔽选中、粘贴、复制、剪切、右键菜单程序代码
- 屏蔽选中、粘贴、复制、剪切、右键菜单
- C#RichTextBox实现(复制, 剪切,粘贴,全选)
- Java右键菜单实现文本组件内容的的复制、粘贴、剪切功能