求代码,实现系统菜单功能(系统剪切,删除,粘帖这些)

akan2005 2007-11-13 02:15:12
有没有人实现过C#winform中系统菜单功能(主要指-剪切、粘帖、删除,全选,撤消,重做)这些功能???
...全文
115 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
GhostAdai 2007-11-14
  • 打赏
  • 举报
回复
应该是调API实现的
277894613 2007-11-13
  • 打赏
  • 举报
回复
捕获KeyDown消息
然后在OnKeyDown的去处理
akan2005 2007-11-13
  • 打赏
  • 举报
回复
有没有更好的方法?我指的是实现类似于windows系统的功能,而不是针对某一个控件的,如果在一个小软件中有多个这样的控件,那这样写不是很麻烦???

我想是不是要用到api等?

谢谢
ylwd2005 2007-11-13
  • 打赏
  • 举报
回复
switch(e.Button.ToolTipText)
{
case "加粗":
if(this.richTextBox1.SelectionFont.Bold)
this.richTextBox1.SelectionFont = new Font(this.richTextBox1.SelectionFont.FontFamily,this.richTextBox1.SelectionFont.Size,FontStyle.Regular);
else
this.richTextBox1.SelectionFont = new Font(this.richTextBox1.SelectionFont.FontFamily,this.richTextBox1.SelectionFont.Size,FontStyle.Bold);
break;
case "斜体":
if(this.richTextBox1.SelectionFont.Italic)
this.richTextBox1.SelectionFont = new Font(this.richTextBox1.SelectionFont.FontFamily,this.richTextBox1.SelectionFont.Size,FontStyle.Regular);
else
this.richTextBox1.SelectionFont = new Font(this.richTextBox1.SelectionFont.FontFamily,this.richTextBox1.SelectionFont.Size,FontStyle.Italic);
break;
case "下划线":
if(this.richTextBox1.SelectionFont.Underline)
this.richTextBox1.SelectionFont = new Font(this.richTextBox1.SelectionFont.FontFamily,this.richTextBox1.SelectionFont.Size,FontStyle.Regular);
else
this.richTextBox1.SelectionFont = new Font(this.richTextBox1.SelectionFont.FontFamily,this.richTextBox1.SelectionFont.Size,FontStyle.Underline);
break;
case "左对齐":
this.richTextBox1.SelectionAlignment = HorizontalAlignment.Left;
break;
case "居中":
this.richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
break;
case "右对齐":
this.richTextBox1.SelectionAlignment = HorizontalAlignment.Right;
break;
case "剪贴":
Clipboard.SetDataObject(this.richTextBox1.SelectedText,true);
this.richTextBox1.SelectedText = "";
break;
case "粘贴":
this.richTextBox1.SelectedText=(string)Clipboard.GetDataObject().GetData(DataFormats.Text);
break;
case "删除":
this.richTextBox1.SelectedText = "";
break;
case "撤消":
this.richTextBox1.Undo();
break;
case "重复":
this.richTextBox1.Redo();
break;
case "表格":
DataTable dt = new DataTable();
dt.Columns.Add();
dt.Columns.Add();
dt.Columns.Add();
DataRow dr = dt.NewRow();
dr[0]="aa";
dr[1]="aa";
dr[2]="aa";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0]="bb";
dr[1]="bb";
dr[2]="bb";
dt.Rows.Add(dr);
Clipboard.SetDataObject(dt,true);
// this.richTextBox1.SelectedText=Clipboard.GetDataObject().GetData(DataFormats.Text).ToString();
this.richTextBox1.Paste();
MessageBox.Show(this.richTextBox1.Rtf);

break;
case "超链接":
break;
case "图片":
if(this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
this.openFileDialog1.Filter = "图片文件|*.jpg|所有文件|*.*";
Clipboard.SetDataObject(Image.FromFile(this.openFileDialog1.FileName),true);
this.richTextBox1.Paste();
}
break;
case "左缩进":
richTextBox1.SelectionBullet = true;
richTextBox1.SelectionIndent = 8;
richTextBox1.SelectionHangingIndent = 3;
richTextBox1.SelectionRightIndent = 12;
break;
case "右缩进":

break;
case "字体":
this.fontDialog1.ShowColor = true;
if(fontDialog1.ShowDialog() != DialogResult.Cancel)
{
this.richTextBox1.SelectionFont =this.fontDialog1.Font;
this.richTextBox1.SelectionColor = this.fontDialog1.Color;
}
break;
}
yuanlai123 2007-11-13
  • 打赏
  • 举报
回复
我曾做过记事本实现过这些功能,你上网搜搜吧,应该有许多的

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧