自己做出VS.NET风格的右键菜单

自己做出VS.NET风格的右键菜单

自己做出VS.NET风格的右键菜单(简单,实用)
此主题相关图片如下:class MyMenuItem : System.Windows.Forms.MenuItem
{
public MyMenuItem()
{
//这里很重要,必须把OwerDraw设为true,这样可以自己画菜单,否则便是让操作系统画菜单了,默认的是false
this.OwnerDraw=true;
}
protected override void OnDrawItem(SysDrawItemEventArgs e)
{
//要重画菜单,是没有OnPaint方法重载的,只有重载OnDrawItem方法!
Graphics g=e.Graphics;
g.SmoothingMode=SmoothingMode.AntiAlias;//抗锯齿
Font f = new Font(FontFamily.GenericSerif, 12, FontStyle.Regular, GraphicsUnit.Pixel);//设定菜单的字体
Pen p=new Pen(Color.Navy,1);//这是画边框的字体

if(e.State==DrawItemState.NoAccelerator)//一开始右键单击出现菜单,但是鼠标并没有移上去
{ //用白色的底色
g.FillRectangle(Brushes.WhiteSmoke,e.Bounds.X-2,e.Bounds.Y-2,121,23);
}
//鼠标移上去,但是并没有单击
if ((e.State & DrawItemState.Selected)==DrawItemState.Selected)
{
//花边框和底色
g.FillRectangle(Brushes.LightSteelBlue,e.Bounds.X,e.Bounds.Y,109,20);
g.DrawLine(p,e.Bounds.X,e.Bounds.Y,e.Bounds.X,e.Bounds.Y+19);
g.DrawLine(p,e.Bounds.X,e.Bounds.Y+19,e.Bounds.X+109,e.Bounds.Y+19);
g.DrawLine(p,e.Bounds.X+109,e.Bounds.Y+19,e.Bounds.X+109,e.Bounds.Y);
g.DrawLine(p,e.Bounds.X+109,e.Bounds.Y,e.Bounds.X,e.Bounds.Y);
}
//显示文字
g.DrawString(this.Text,f,Brushes.Black,e.Bounds.X,e.Bounds.Y);
g.Dispose();
}
//这是很重要的,这给你的菜单定义了大小,高20,宽100,否则你的菜单什么也看不到
protected override void OnMeasureItem(MeasureItemEventArgs e)
{
e.ItemHeight=20;
e.ItemWidth=100;
}
}
说明:这里我没有画按钮按下时的样子(懒:),主要是以后进一步改进),当然也没有画图标,也是为了以后改进,这只是一个初步的形态,大家看看有什么更高的方法?!

时间: 2024-11-03 12:13:49

自己做出VS.NET风格的右键菜单的相关文章

讲解:自己做出VS.NET风格的右键菜单

菜单|右键 自己做出VS.NET风格的右键菜单(简单,实用) 此主题相关图片如下:class MyMenuItem : System.Windows.Forms.MenuItem {  public MyMenuItem()  {  //这里很重要,必须把OwerDraw设为true,这样可以自己画菜单,否则便是让操作系统画菜单了,默认的是false  this.OwnerDraw=true;  }  protected override void OnDrawItem(SysDrawItemE

XP风格的右键菜单

有声音的哦-- 可以关闭!设置 mouseCanSound = false; 就可以了

js实现的XP风格的右键菜单_导航菜单

有声音的哦-- 可以关闭!设置 mouseCanSound = false; 就可以了

【转】右键菜单大揭密

在Windows系统中,只要对着桌面或是文件(夹)单击右键,就会弹出一个快捷菜单,里面有对该文件(夹)的一些常用×作命令,通过右键菜单,可以方便用户对文件的某些×作.不知道你是否对它感兴趣?是否想对它作一番改头换面,做出有自己特色的右键菜单?不用着急,看完本文的大揭密,你将成为这方面的高手!修改右键菜单应该在注册表中,具体的说,是在HKEY_CLASSES_ROOT根键下(这里可是右键菜单中所有命令的根源哦!).展开该根键,其下的子键主要有两种:扩展名键(.+扩展名)和类定义键.一般地说,只要是

JS实现不使用图片仿Windows右键菜单效果代码_javascript技巧

本文实例讲述了JS实现不使用图片仿Windows右键菜单效果代码.分享给大家供大家参考,具体如下: 这里演示JS不使用图片仿Windows右键菜单效果,这款代码灵活使用了文鼎字,配合CSS和JS做出了这个和系统右键菜单很相似的东东. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-windows-right-button-menu-codes/ 具体代码如下: <HTML> <HEAD> <TITLE>极酷的多级右

打造超酷网页右键菜单二法

菜单|网页 在一般的网页中,IE浏览器的默认右键菜单是一成不变的固定模式,大部分网友浏览网页时对它的利用率不高.对专业的网页设计师来说,如果能将右键菜单设计成个性化的内容,样式该是多么的酷和方便. 试想一下,用户在你的网站上一点右键,就是你精心组织的"链接"."发信",甚至包含了缤纷的交互式Flash动画!如图1--别流口水了,下面咱们就解解馋,看看如何制作吧:). 右键菜单的改造,我有两种途径(其实,本质是一样的,都是JavaScript的东西). 第一种方法是较

CSS+&amp;#106avascript打造超酷右键菜单

css|菜单 但有时候我们会遇到这样的问题,我们希望禁止访问者使用右键菜单或者希望屏蔽右键菜单的某些功能,比如,为了保护网页内容我们不希望访问者通过右键菜单来查看网页源代码,也不希望其通过右键来对网页内容进行选取.复制等,很多网页设计者在考虑这个问题的时候都是简单地对右键进行屏蔽,与其这样我们还不如用脚本来实现一个风格右键菜单,并在这个右键菜单中装上我们自己的内容.下面我们来尝试一下这个设想. 我们首先要考虑的问题是通过鼠标右键单击事件来调用一个函数,这个函数用来显示新的右键菜单的内容.我们知道

CSS+JavaScript打造超酷右键菜单

css|javascript|菜单|右键 其实在网页上实现右键菜单的风格化已经是一个老话题了,正常情况下,网页上的右键菜单是默认IE右键选项,包括了一些常用的功能. 但有时候我们会遇到这样的问题,我们希望禁止访问者使用右键菜单或者希望屏蔽右键菜单的某些功能,比如,为了保护网页内容我们不希望访问者通过右键菜单来查看网页源代码,也不希望其通过右键来对网页内容进行选取.复制等,很多网页设计者在考虑这个问题的时候都是简单地对右键进行屏蔽,与其这样我们还不如用脚本来实现一个风格右键菜单,并在这个右键菜单中

如何在asp.net页面上放置的控件上实现左右键菜单,同时对之操作(1

asp.net|菜单|控件|页面 前言: 大家也许开发了很多windows界面的解决方案,对于菜单的使用可以说是滚瓜烂熟,当然,如何实现windows窗口上的左右键功能也是不在话下. 但是如何在web窗口实现菜单呢? 很多人说.用javascript或者是vbscript来实现.完全正确.一般说来是在前台用脚本语言来写.现在也有基于不是用脚本语言的控件的方式来实现的方式.用控件来实现的方法大家可以参考我写的<基于asp.net的webmenu的数据操作>一文,用控件很容易的. 我说的是老生常谈