20070526 SaferRun 开发 ToolStripMenuItem
http://www.yippeesoft.com
C#代码辅助工具Visual Assist X 与 VS2005的代码自动提示发生冲突的解决办法
在 Visual Assist X 设置好代码快捷方式以后,比如 if 的快捷方式设置成:
if($select$)
&leftsign;
$end$
&rightsign;
在VS代码编辑窗口中编辑时,发现与VS自己的 if 快捷方式发生了冲突,Assist 的if出不来。
于是设置VS的属性N次,找到了解决问题的办法,如下:
工具 >> 选项 >> 文本编辑器 >> C#
1、常规: 将“语句结束”自动列出成员,隐藏高级成员选中
2、Intellisense:将“完成列表”中的“键入字符后显示完成列表”去掉,不选中。其他的项目不去动他。
C# winform程序中动态菜单的问题
给应用程序动态增加菜单
例:
popMenuItem 是父菜单,可以是菜单条上的主菜单项目也可以是下拉菜单中的菜单项
DynMenuItem_Click(object sender, EventArgs e) 是菜单响应函数
&leftsign;
ToolStripMenuItem item = (ToolStripMenuItem)sender;
item 是当前单击的新菜单项
&rightsign;
ToolStripMenuItem item = new ToolStripMenuItem("动态菜单Text" ,null,new System.EventHandler(this.DynMenuItem_Click),"menuItemName");
popMenuItem.DropDownItems.Add(item);
c# 分隔符 new ToolStripMenuItem
private void Form1_Load(object sender, EventArgs e)
&leftsign;
XmlDocument doc = new XmlDocument();
//如果网络不畅的话则有可能会抛出WebException的。
doc.Load(tvListPath);
XmlElement ele = doc.DocumentElement;
XmlNodeList nodeList = ele.SelectNodes("item"); //得到一个名字为IIFF的所有节点
ConfigMainMenu(nodeList, this.menuStrip1, null);
&rightsign;
//包含菜单项内容的xml文件的地址。
private const string tvListPath = @"http://uploadlist.googlepages.com/OnlineTV.xml";
private void commonToolStripMenuItem_Click(object sender, EventArgs e)
&leftsign;
ToolStripMenuItem menuItem = sender as ToolStripMenuItem;
Debug.Assert(menuItem != null);
//未set的Name取出来的将是"",所以如此进行判断
if (menuItem.Name != "")
&leftsign;
Process.Start(menuItem.Name);
&rightsign;
&rightsign;
/**//// <summary>
/// 递归函数,向主窗体中加入菜单项。
/// </summary>
/// <param name="nodeList"></param>
/// <param name="menuStrip"></param>
/// <param name="menuItem"></param>
public void ConfigMainMenu(XmlNodeList nodeList, MenuStrip menuStrip, ToolStripMenuItem menuItem)
&leftsign;
foreach (XmlNode node in nodeList)
&leftsign;
if (node.Name == "item")
&leftsign;
XmlAttributeCollection attribute = node.Attributes;
XmlAttribute text = attribute["text"];
if (text != null)
&leftsign;
XmlAttribute address = attribute["address"];
//根据xml文件的内容新建一个菜单项。
ToolStripMenuItem subItem = new ToolStripMenuItem(text.Value);
if (address != null)
&leftsign;
subItem.Name = address.Value;
&rightsign;
subItem.Click += new EventHandler(commonToolStripMenuItem_Click);
addItem(menuStrip, menuItem, subItem);
ConfigMainMenu(node.ChildNodes, null, subItem);
&rightsign;
&rightsign;//如果指示为分隔符的话:
else if (node.Name == "separator")
&leftsign;
ToolStripSeparator toolStripSeparator = new ToolStripSeparator();
addItem(menuStrip, menuItem, toolStripSeparator);
&rightsign;
else
&leftsign;
throw new InvalidDataException("节点的名称有误,请检查");
&rightsign;
&rightsign;
&rightsign;
历史博文
- 20070118 带宽 部署 - 2008
- 0515 何祚庥 逻辑 问题 捕蛇者说 - 2006
- 近代史上殖民中国的列强小小分析 - 2005