学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> VB >> 讲解:自己做出VB.NET风格的右键菜单


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


  自己做出VB.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; 

  说明:这里我没有画按钮按下时的样子(懒:),主要是以后进一步改进),当然也没有画图标,也是为了以后改进,这只是一个初步的形态,大家看看有什么更高的方法?!


技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

还没人留言,抢个先,哈哈!
对"讲解:自己做出VB.NET风格的右键菜单"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 讲解:自己做出VB.NET风格的右键菜单 相关内容
Google搜索中 讲解:自己做出VB.NET风格的右键菜单 相关内容
雅虎中 讲解:自己做出VB.NET风格的右键菜单 相关内容
Sogou搜索中 讲解:自己做出VB.NET风格的右键菜单 相关内容

相关软件 最新回复帖子:

·没有mysql支持时的替代方案
·一个可以发送附件及HTML格式邮件的PHP类
·AutoCAD打造精致三维鸟笼实例详解
·Photoshop自定义水晶字特效样式
·AutoCAD三维基础实例教程
·PS为黑背景长发美女照片抠图换背
·用Photoshop自制个性摩托车贴花小经验
·轻松几步将美女照片处理为手工素描
·巧用Photoshop画笔轻松绘制创意特效
·用Photoshop通道将模糊肖像照片清晰化


  相关软件 讲解:自己做出VB.NET风格的右键菜单相关文章
关于Visual Basic 9.0的动态标识符 VB6中使用Winsock穿越各种代理的实现
VB中运用反射原理优化程序代码 在Visual Basic中使用WinSock控件
利用VB6.0实现五线谱作曲工具 Visual Basic应用程序的几种打印方法
用VB建立字符界面的控制台程序 通信控件MSComm使用详解
VB实现动态调用含DateTime类型存储过程 VB+Access设计图书管理系统
如何用Visual Basic编写病毒 用VB6.0在Vista下实现全磨砂玻璃窗口
VB中调用MSN 6.2 API函数 Visual Basic中实现带预览的对话框
VB访问SQL Server数据库技术全揭密 用Visual Basic实现点对点通讯
Visual baisc中Byval与Byref的区别 VB6.0中Dir()函数的使用方法
VB中使用WinSock控件编写网络程序 VB程序中用ADO对象动态创建数据库和表