注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

C# Windows编程入门(十)  

2010-12-20 16:15:17|  分类: C# & .NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

       前面实现了子菜单的共享事件处理函数,下面将讨论第二步DropDownOpening事件的处理。

       一个好的菜单能够指示用户当前的状态,并为用户的正确选择提供参考依据。例如在Word中有的菜单前面有小勾,表示目前该项状态是打开的,或是被选择的,如下图中的标尺:

 

C Windows编程入门(十) - Castor - 趁年轻,多折腾~~

 

为了实现这个功能,就需要使用DropDownOpening事件了,首先编写事件处理函数,如下:

protected void menuImage_DropDownOpening(object sender, System.EventArgs e)

{

    ToolStripMenuItem itemsColl=(ToolStripMenuItem)sender;

    ToolStripItemCollection items = itemsColl.DropDownItems;

    bool bImageLoaded = (pictureBox1.Image != null);

    foreach(ToolStripMenuItem mi in items)

    {

        mi.Enabled=bImageLoaded;

        mi.Checked = (_selectedImageMode == tsi.GetCurrentParent().Items.IndexOf(mi));

    }

}

       这里的程序和原书中完全不一样了,主要是VS2005VS2003的不同造成的,但是实现的原理还是一样的。最后是把该事件处理函数和Image菜单项的DropDownOpening事件绑定在一起,这个和前面的操作是一样的。如果图片没有被加载,所有的Image下的菜单项都不可用,当图片加载后当前的模式下前面是有个小勾的,表明被选中了,前后对比如下:

 

C Windows编程入门(十) - Castor - 趁年轻,多折腾~~

 

到此为止,主菜单的实现就完成了,另外,还可以在菜单前面加上图片(Image属性),其他的工作就是复杂性了。

  评论这张
 
阅读(616)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016