如何取得MenuStrip下的所有ToolStripMenuItem对象,谢谢
解决方案 »
- 如何提高WCF的执行效率
- 两万多行的excel数据如何导入到access
- C#中透明窗体
- 可能关于存储问题,帮忙看看啊
- 请问有谁用过CNBlogsDottext,帮我解答注册用户问题
- 高手来,高分伺候,高难度挑战!!在线等!!
- Global报错:<%@ Application Codebehind="Global.asax.vb" Inherits="FLCP2006.Global" %>这一行的内容在那里可以修改啊?
- 这是什么码?\u8bf7\u9009\u62e9 在IE里显示是 请选择
- 100分求Windows Live Mail 和 Live Messager邀请.
- C#编译是出错!
- 加密解密时遇到难题,速度太慢~~
- 把这段Delphi程序翻译成C#
}
}
第一层菜单可以这样处理,但第二层就不可以了.
第二层用如下的,但碰到ToolStripSeparator的对象就报错了. foreach (ToolStripItem item in this.MainMenuStrip.DropDownItems) {
}怎么办???????????????????????
{
for (int i = 0; i < item.DropDownItems.Count; i++) {
object obj = item.DropDownItems[i];
if (obj.GetType() != typeof(ToolStripSeparator)) {
continue;
}
}
}
错误 1091 无法将类型“System.Windows.Forms.ToolStripItem”隐式转换为“System.Windows.Forms.ToolStripMenuItem”。存在一个显式转换(是否缺少强制转换?) D:\rfsa\syspro\CS\SYS\ClsSysPubprv.cs 292 39 syspro代码如下:
ToolStripMenuItem lTSI_MenuP;
ToolStripMenuItem ltsddm_MenuItem;
ToolStripMenuItem ltsddm_MenuSub;
ToolStripMenuItem ltsddm_Menu;
string ls_tag;
string ls_sql;
int li_int; ltsddm_MenuItem = null; SqlCommand lcmd = new SqlCommand(); foreach (ToolStripMenuItem tempLoopVar_lTSI_MenuP in as_menu.Items)
{
try
{
lTSI_MenuP = tempLoopVar_lTSI_MenuP;
}
catch
{
continue;
}
for (int i = 0; i < lTSI_MenuP.DropDownItems.Count; i++)
{
object obj = lTSI_MenuP.DropDownItems[i];
if (obj.GetType() == typeof(ToolStripSeparator))
{
continue;
}
try
{
ltsddm_Menu = lTSI_MenuP.DropDownItems[i];
}
catch
{
continue;
}
try
{
ls_tag = ltsddm_Menu.Tag.ToString();
}
catch
{
ls_tag = "";
} li_int = 0;
ltsddm_MenuItem = ltsddm_Menu;
}
return null;
}
ltsddm_Menu = (ToolStripMenuItem)lTSI_MenuP.DropDownItems[i];
private ToolStripMenuItem FindMenuItem(MenuStrip Menu, string MenuItemName)
{
ToolStripMenuItem menuItem, result;
result = null;
int count = Menu.Items.Count; for (int i = 0; i < count; i++)
{
menuItem = (ToolStripMenuItem)Menu.Items[i];
if (Menu.Items[i].Name == MenuItemName)
{
result = menuItem;
break;
}
else
{
result = FindSubMenuItem(menuItem, MenuItemName);
if (result != null)
break;
}
} return result;
} private ToolStripMenuItem FindSubMenuItem(ToolStripMenuItem MenuItem, string MenuItemName)
{
int count;
ToolStripMenuItem menuItem, result;
result = null; if (MenuItem.HasDropDownItems)
{
count = MenuItem.DropDownItems.Count; for (int i = 0; i < count; i++)
{
if (MenuItem.DropDownItems[i].GetType().Equals(MenuItem.GetType()))
{
menuItem = (ToolStripMenuItem)MenuItem.DropDownItems[i];
if (menuItem.Name == MenuItemName)
{
result = menuItem;
break;
}
else
{
result = FindSubMenuItem(menuItem, MenuItemName);
if (result != null)
break;
}
} }
} return result;
}
{
ToolStripMenuItem menuItem, result;
result = null;
int count = Menu.Items.Count; for (int i = 0; i < count; i++)
{
menuItem = (ToolStripMenuItem)Menu.Items[i];
if (Menu.Items[i].Name == MenuItemName)
{
result = menuItem;
break;
}
else
{
result = FindSubMenuItem(menuItem, MenuItemName);
if (result != null)
break;
}
} return result;
} private ToolStripMenuItem FindSubMenuItem(ToolStripMenuItem MenuItem, string MenuItemName)
{
int count;
ToolStripMenuItem menuItem, result;
result = null; if (MenuItem.HasDropDownItems)
{
count = MenuItem.DropDownItems.Count; for (int i = 0; i < count; i++)
{
if (MenuItem.DropDownItems[i].GetType().Equals(MenuItem.GetType()))
{
menuItem = (ToolStripMenuItem)MenuItem.DropDownItems[i];
if (menuItem.Name == MenuItemName)
{
result = menuItem;
break;
}
else
{
result = FindSubMenuItem(menuItem, MenuItemName);
if (result != null)
break;
}
} }
} return result;
}
获取menustrip的所有项,返回是一个ToolStripItemCollection集合
………
ArrayList SubItem = new ArrayList();
int level;
private void FindAllSubMenuItem(ref ArrayList arr,ToolStripMenuItem mi,int level )
{
if (level == 0)
{
for (int i = 0; i < this.MainMenuStrip.Items.Count; i++)
{
if (this.MainMenuStrip.Items[i].GetType().Name!=” ToolStripSeparator”)
{
ToolStripMenuItem item = (ToolStripMenuItem)this.MainMenuStrip.Items[i];
arr.Add(item);
FindAllSubMenuItem(ref arr, item, level + 1);
}
}
}
else
{
if (mi != null && mi.DropDownItems.Count > 0)
{
for (int i = 0; i < mi.DropDownItems.Count; i++)
{
if (this.MainMenuStrip.Items[i].GetType().Name!=” ToolStripSeparator”)
{
ToolStripMenuItem item = (ToolStripMenuItem)mi.DropDownItems[i];
arr.Add(item);
FindAllSubMenuItem(ref arr, item, level + 1);
}
}
}
}
}
所有的菜单项保存在动态数组SubItem中