这个东西怎么可能会有系统的标准实现呢? 实际的情况是千变万化的。在MenuItem的Popup事件中,来根据条件判断禁用或启用某菜单项。比如一个画图程序,在Popup事件中,你可以检查,当前客户区中是否选中了图像,如果有,就启用剪切,粘贴,同时检查剪切板中是否有某种支持的图像格式,如果有就启用粘贴菜单。如果是字处理,那就要换成检查文本,或RTF。。如果是自己开发的窗口设计器,那就要检查自定义的格式。
解决方案 »
- (asp.net mobile)送分
- comboBox1无法显示出NAME1列的内容
- 怎么C#.NET程序在运行时,每个Form都会在任务栏上显示一个按钮。
- VS2005 C# 程序错误
- 用C#生成图片(急啊,帮忙)
- 对方给我用socket发来的XML格式的数据.是byte[].我能直接用XML读吗?
- [WinForm]Button的FlatStyle设置为Flat,边框会有黑线,怎么去掉?
- 100 分请教!!关于 多线程 的 小问题?
- Hash table (哈希表) 究竟什么意思?
- 怎样复制对象?
- 一夜未宿:如何在datagrid(winform)中动态增加具有可自定义类型的列??
- WindowsService 的timer控件注册不了Elapsed事件,怎么办?
现在在c#中如何实现呢?
如果自己写代码的话,需要对每个子窗口的每个编辑控件进行跟踪,那要郁闷死的
richTextBox.CanRedo();
RichTextBox.CanPaste();
-----------------------------------
如果是一般的编辑控件,比如:textBox,comboBox,这些就不用了,这些控件在运行时单击右键,系统会自动弹出编辑菜单的!!!
private void EditItem_Select(object sender, System.EventArgs e)
{
MenuItem[] items=new MenuItem[contextMenu1.MenuItems.Count];
contextMenu1.MenuItems.CopyTo(items,0);
EditItem.MenuItems.AddRange(items);
}//不过这样的话,在contextMenu1_Popup事件中写相应的代码,因为什么的代码是把
//contextMenu1的子菜单转到EditItem,转后contextMenu1就没有子菜单了,又要从
//edititem转过来,这样是比较麻烦的,最好就自己多做一些edititem的子菜单啦。
//让contextmenul的子菜单与edititem子菜单的事件关联就行了