好大问题啊!!怎么没高手啊!!!

learn2003 2003-08-21 07:41:21
我在textBox里建立一个删除菜单,代码如下:
private void menuItemDel_Click(object sender, System.EventArgs e)
{
//删除选中的文本
int pos=textBox.SelectionStart;
textBox.Text=textBox.Text.Remove(textBox.SelectionStart,textBox.SelectionLength);
textBox.SelectionStart=pos;
}
我用此方法来作删除,为何textBox.CanUndo属性不会变true?textBox.Undo方法也不会执行?(我所讲的情况是将选中的字符删除,按Del键删除,而不是按退格键啊!!)
书中例子是用textBox.SelectedText.Remove(1,textBox.SelectionLength)实现的,但我用了却有错,好像是不在数组范围内,我以为可能他漏了重新赋值给textBox再显示,即:
textBox.Text=textBox.SelectedText.Remove(1,textBox.SelectionLength),但也是同样问题,究竟如何改正?其实我的代码也没错,为何出现我所讲的情况?
==========================================================================

我做书中的一个记事本的例子,主菜单里的编辑菜单的结构如下:

编辑
撤消
——
剪切
复制
粘贴
删除
——
全选

接着在加一个上下文菜单的结构如下:

撤消
——
剪切
复制
粘贴
删除
——
全选

然后在构造函数的FormMain()中添加如下代码,为contextMenu添加菜单项.
//使用MenuItem.CloneMenu()方法复制菜单
1 menuItemCUndo=menuItemUndo.CloneMenu();
2 menuItemCCut=menuItemCut.CloneMenu();
3 menuItemCCopy=menuItemCopy.CloneMenu();
4 menuItemCPaste=menuItemPaste.CloneMenu();
5 menuItemCDel=menuItemDel.CloneMenu();
6 menuItemCSelAll=menuItemSelAll.CloneMenu();

7 contextMenu.MenuItems.AddRange(new MenuItem[] {{ this.menuItemCUndo, this.menuItem2, this.menuItemCCut, this.menuItemCCopy, this.menuItemCPaste, this.menuItemCDel, this.menuItem10, this.menuItemCSelAll});
我7前加了前面1、2、3、4、5、6几句,7没变,运行没错。接着将代码窗口转回设计窗口,contextMenu显示不了,想看看、修改也不行。再运行有错,又讲上面的1、2、3、4、5、6删除,转回设计窗口,contextMenu可以显示了,但没了剪切,复制菜单。请问究竟怎么使用MenuItem.CloneMenu()方法?是不是也要将两条“横线”也Clone?在7里要改吗?
==========================================================================

再看保存菜单代码:
1 private void menuItemSave_Click(object sender, System.EventArgs e)
2 {
3 //如果当前文件不存在,即新建的没有文件名的文本
4 if(currentFileName==null)
5 {
6 //调用menuItemSaveAs的Click事件,要获得文件名
7 menuItemSave_Click(sender,e);
8 }
9 //否则,有文件名
10 else
11 {
12 ............
13 }
14 }
运行,出现4选种是黄色,出现一个对话框说(未处理的“System.StackOverflowException”类型的异常出现在 TextEdit.exe 中),但我将7改为menuItemSaveAs.PerformClick()却可以正常运行没错,为什么呢???7的用法错误?
...全文
25 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,529

社区成员

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

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

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