我在做一个简单的记事本程序,有很多问题出现啊,向各位高手求救
1.删除功能: 
       我现在只能实现把选定的字符删除,怎样才能像真正的记事本那样按一下delete键就会把光标所处位置的后一个字符删除。   
 2.右键菜单: 
       我用了contextmenu控件,可是不会用,发现单击右键什么也没有出来。   
 3.我想像真正的记事本那样在新建一个文件时它的撤销,剪切,复制删除功能的Enable属性是false,只有当我有过编辑的操作撤销功能的Enable才为true,只有当有字体是被选定时,剪切,复制,删除功能的Enable才为true,该用什么方法来实现这个监控啊?   
 4.我每次保存后都不能保存字符的大小和所选字体,该怎样做啊?我用的是richtextbox控件。
------解决方案--------------------如果你是在Web中﹐就不用看下面的了 
 1.不知你是怎么實現的﹐delete是RichTextBox的默認的動作﹐根本不需要編程啊 
 2.contextmenu.Show(richtextbox1,坐標)﹐(在鼠標點擊事件中的參數e中有坐標) 
 3.在一個Array中記錄一定次數的動作,保存或取消全部更改時設為0﹐只有Array的Length> 0時﹐才允許销功能的Enable才为true。通過判斷richtextbox的SelectedText是否為空﹐來決定剪切,复制,删除功能的Enable。 
 4.要保存字符的大小和所选字体﹐必須將內容保存為Rtf,例﹕richTextBox1.SaveFile(stream,System.Windows.Forms.RichTextBoxStreamType.RichText),讀取時也一樣﹐是設定它的Rtf.
------解决方案--------------------可以继承richtextbox控件   
 在里面加入消息相应处理函数,这个最好懂windows消息机制   
 我每次保存后都不能保存字符的大小和所选字体,该怎样做啊? 
 ========= 
 注意,字体的大小不是txt文件的属性,而是记事本控制的
------解决方案--------------------1.太复杂,我只能把光标移到最后,就是给文本追加一个 " "; 
 2.说明你的没有关联上,把richtextbox的属性ContextMenu与右键菜单关联一下,不可能不出来 
 3.这几个变量标识的应该很明显了(没写全) 
 private bool blCut = false;//判断剪切板里是否有内容 
 		//剪切 
 		private void menuX_Click(object sender, System.EventArgs e) 
 		{ 
 			this.txtNote.Cut(); 
 			blCut = true; 
 			this.menuX.Enabled = false; 
 			this.menuV.Enabled = true; 
 		}   
 		//撤销 
 		private void menuZ_Click(object sender, System.EventArgs e) 
 		{ 
 			this.txtNote.Undo(); 
 		}   
 		//复制 
 		private void menuC_Click(object sender, System.EventArgs e) 
 		{ 
 			this.txtNote.Copy(); 
 		} 
 4.不知道你的保存是怎么写的,我的是 
 //保存		 
 		string sFileName; 
 		bool flag = false; 
 		private void menuSave_Click(object sender, System.EventArgs e) 
 		{	 
 			if(sFileName == string.Empty) 
 			{ 
 				this.saveFileDialog1.Filter =  "文本文件(*.txt)|*.txt|所有文件(*.*)|*.* "; 
 				if(this.saveFileDialog1.ShowDialog() == DialogResult.OK) 
 				{ 
 					sFileName = this.saveFileDialog1.FileName; 
 					this.fo.CreateFile(sFileName,this.txtNote.Text); 
 					flag = true; 
 				} 
 			} 
 			else 
 			{ 
 				this.fo.CreateFile(sFileName,this.txtNote.Text); 
 				flag = true; 
 			} 
 		} 
 其中flag是判断你有没有保存过,用来控制再次点击保存时不在弹出对话框
------解决方案--------------------//就改這句 
 dd.Write(richtxtEdit.Rtf)