[C#]MagicLibrary.dll控件的使用(一)(下拉菜单)

.net自带的Menu菜单实在不好看。
MagicLibrary此控件功能很强大,贴个下拉菜单的此控件用法。当然,此控件不仅仅只有这个用法,还有很多功能。比如说像VS.net这样的窗口控制、TabControl控件等等。
现举个例,用MagicLibrary做下拉菜单:
部份效果截图:
(如图一)
Image_1.jpg

(如图二)
Image_2.jpg



源码下载:/Files/HD/MagicLibrary_Demo/MenuDemo.rar

首先创建两个窗体Form1和Form2,再在主窗体Form1中加入ImageList控件。把所要的小图标加入到控件中。
以下为例子源码部份:(Form1窗体源码)

None.gif using  System;
None.gif
using  System.Drawing;
None.gif
using  System.Collections;
None.gif
using  System.ComponentModel;
None.gif
using  System.Windows.Forms;
None.gif
using  System.Data;
None.gif
None.gif
namespace  WindowsApplication1
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
ExpandedSubBlockStart.gifContractedSubBlock.gif    
/**//// <summary>
InBlock.gif    
/// Form1 的摘要说明。
ExpandedSubBlockEnd.gif    
/// </summary>

InBlock.gif    public class Form1 : System.Windows.Forms.Form
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
private System.ComponentModel.IContainer components;
InBlock.gif        
protected System.Windows.Forms.ImageList _images;
InBlock.gif        
private Crownwood.Magic.Menus.MenuControl _topMenu = null;
InBlock.gif
InBlock.gif        
public Form1()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//
InBlock.gif            
// Windows 窗体设计器支持所必需的
InBlock.gif            
//
InBlock.gif
            InitializeComponent();
InBlock.gif
InBlock.gif            
//
InBlock.gif            
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
InBlock.gif            
//
InBlock.gif
            this.SetupMenu();
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// 清理所有正在使用的资源。
ExpandedSubBlockEnd.gif        
/// </summary>

InBlock.gif        protected override void Dispose( bool disposing )
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
if( disposing )
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
if (components != null
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    components.Dispose();
ExpandedSubBlockEnd.gif                }

ExpandedSubBlockEnd.gif            }

InBlock.gif            
base.Dispose( disposing );
ExpandedSubBlockEnd.gif        }

InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif        
Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
InBlock.gif        
/// 此方法的内容。
ExpandedSubBlockEnd.gif        
/// </summary>

InBlock.gif        private void InitializeComponent()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
this.components = new System.ComponentModel.Container();
InBlock.gif            System.Resources.ResourceManager resources 
= new System.Resources.ResourceManager(typeof(Form1));
InBlock.gif            
this._images = new System.Windows.Forms.ImageList(this.components);
InBlock.gif            
// 
InBlock.gif            
// _images
InBlock.gif            
// 
InBlock.gif
            this._images.ImageSize = new System.Drawing.Size(1616);
InBlock.gif            
this._images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("_images.ImageStream")));
InBlock.gif            
this._images.TransparentColor = System.Drawing.Color.Transparent;
InBlock.gif            
// 
InBlock.gif            
// Form1
InBlock.gif            
// 
InBlock.gif
            this.AutoScaleBaseSize = new System.Drawing.Size(614);
InBlock.gif            
this.ClientSize = new System.Drawing.Size(472333);
InBlock.gif            
this.IsMdiContainer = true;
InBlock.gif            
this.Name = "Form1";
InBlock.gif            
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
InBlock.gif            
this.Text = "Form1";
InBlock.gif            
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
InBlock.gif
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif        
#endregion

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// 应用程序的主入口点。
ExpandedSubBlockEnd.gif        
/// </summary>

InBlock.gif        [STAThread]
InBlock.gif        
static void Main() 
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Application.Run(
new Form1());
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
protected void SetupMenu()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
this._topMenu = new Crownwood.Magic.Menus.MenuControl();
InBlock.gif            
this._topMenu.MdiContainer = this;
InBlock.gif            
//建立菜单
InBlock.gif
            Crownwood.Magic.Menus.MenuCommand top1 = new Crownwood.Magic.Menus.MenuCommand( "&File" );
InBlock.gif            
//加入子菜单
InBlock.gif
            this.CreateFileMenu( top1 );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top2 
= new Crownwood.Magic.Menus.MenuCommand( "&View" );
InBlock.gif            
//加入子菜单
InBlock.gif
            this.CreateViewMenu( top2 );
ExpandedSubBlockStart.gifContractedSubBlock.gif            
this._topMenu.MenuCommands.AddRange( new Crownwood.Magic.Menus.MenuCommand[]dot.gif{ top1,top2 } );
InBlock.gif            
//控件置顶
InBlock.gif
            _topMenu.Dock = DockStyle.Top;
InBlock.gif            
//菜单样式
InBlock.gif
            this._topMenu.Style = Crownwood.Magic.Common.VisualStyle.IDE;
InBlock.gif            
//载入控件
InBlock.gif
            Controls.Add( _topMenu );
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// File子菜单
InBlock.gif        
/// </summary>
ExpandedSubBlockEnd.gif        
/// <param name="mc"></param>

InBlock.gif        protected void CreateFileMenu( Crownwood.Magic.Menus.MenuCommand mc )
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top1_0 
= new Crownwood.Magic.Menus.MenuCommand( "&New window",this._images,0,new EventHandler(OnNewWindowSelected) );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top1_1 
= new Crownwood.Magic.Menus.MenuCommand( "&Open",new EventHandler(OnOpenSelected) );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top1_2 
= new Crownwood.Magic.Menus.MenuCommand( "&Save",this._images,1,new EventHandler(OnSaveSelected) );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top1_3 
= new Crownwood.Magic.Menus.MenuCommand( "&Exit",new EventHandler(OnExitSelected) );
ExpandedSubBlockStart.gifContractedSubBlock.gif            mc.MenuCommands.AddRange( 
new Crownwood.Magic.Menus.MenuCommand[]dot.gif{ top1_0,top1_1,top1_2,top1_3 } );
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// View菜单
InBlock.gif        
/// </summary>
ExpandedSubBlockEnd.gif        
/// <param name="mc"></param>

InBlock.gif        protected void CreateViewMenu( Crownwood.Magic.Menus.MenuCommand mc )
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//下拉主菜单
InBlock.gif
            Crownwood.Magic.Menus.MenuCommand top2_1 = new Crownwood.Magic.Menus.MenuCommand( "&Search",this._images,2 );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top2_2 
= new Crownwood.Magic.Menus.MenuCommand( "&Replace" );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top2_3 
= new Crownwood.Magic.Menus.MenuCommand( "&Cut" );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top2_4 
= new Crownwood.Magic.Menus.MenuCommand( "&Repair" );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top2_5 
= new Crownwood.Magic.Menus.MenuCommand( "&Edit" );
InBlock.gif            
//下拉子菜单
InBlock.gif
            Crownwood.Magic.Menus.MenuCommand top2_1_1 = new Crownwood.Magic.Menus.MenuCommand( "&Select search" );
InBlock.gif            Crownwood.Magic.Menus.MenuCommand top2_1_2 
= new Crownwood.Magic.Menus.MenuCommand( "&Check search" );
ExpandedSubBlockStart.gifContractedSubBlock.gif            top2_1.MenuCommands.AddRange( 
new Crownwood.Magic.Menus.MenuCommand[]dot.gif{ top2_1_1,top2_1_2 } );
InBlock.gif
InBlock.gif            
//下拉主菜单属性
InBlock.gif
            top2_2.Enabled = false;
InBlock.gif            top2_4.Infrequent 
= true;
InBlock.gif            top2_5.Infrequent 
= true;
InBlock.gif
InBlock.gif            
//下拉子菜单属性
InBlock.gif
            top2_1_1.Checked = true;
InBlock.gif
InBlock.gif            
//下拉菜单左导航
InBlock.gif
            mc.MenuCommands.ExtraText = "View edit";
InBlock.gif            mc.MenuCommands.ExtraTextColor 
= Color.White;
InBlock.gif            mc.MenuCommands.ExtraBackColor 
= Color.DarkBlue;
InBlock.gif            mc.MenuCommands.ExtraFont 
= new Font("Times New Roman", 12f, FontStyle.Bold | FontStyle.Italic);
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            mc.MenuCommands.AddRange( 
new Crownwood.Magic.Menus.MenuCommand[]dot.gif{ top2_1,top2_2,top2_3,top2_4,top2_5 } );
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// 添加New window选项目事件
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="sender"></param>
ExpandedSubBlockEnd.gif        
/// <param name="e"></param>

InBlock.gif        protected void OnNewWindowSelected( object sender, EventArgs e )
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Crownwood.Magic.Menus.MenuCommand mc 
= (Crownwood.Magic.Menus.MenuCommand)sender;
InBlock.gif            Form2 f2 
= this.ActiveMdiChild as Form2;
InBlock.gif            
if ( f2 != null )
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                f2.Focus();
ExpandedSubBlockEnd.gif            }

InBlock.gif            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                f2 
= new Form2();
InBlock.gif                f2.MdiParent 
= this;
InBlock.gif                f2.Show();
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// 添加Open选项目事件
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="sender"></param>
ExpandedSubBlockEnd.gif        
/// <param name="e"></param>

InBlock.gif        protected void OnOpenSelected( object sender, EventArgs e )
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Crownwood.Magic.Menus.MenuCommand mc 
= (Crownwood.Magic.Menus.MenuCommand)sender;
InBlock.gif            System.Windows.Forms.OpenFileDialog ofd 
= new OpenFileDialog();
InBlock.gif            ofd.ShowDialog( 
this );
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// 添加Save选项目事件
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="sender"></param>
ExpandedSubBlockEnd.gif        
/// <param name="e"></param>

InBlock.gif        protected void OnSaveSelected( object sender, EventArgs e )
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Crownwood.Magic.Menus.MenuCommand mc 
= (Crownwood.Magic.Menus.MenuCommand)sender;
InBlock.gif            System.Windows.Forms.SaveFileDialog sfd 
= new SaveFileDialog();
InBlock.gif            sfd.ShowDialog( 
this );
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
InBlock.gif        
/// 添加Exit选项目事件
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="sender"></param>
ExpandedSubBlockEnd.gif        
/// <param name="e"></param>

InBlock.gif        protected void OnExitSelected( object sender, EventArgs e )
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            Crownwood.Magic.Menus.MenuCommand mc 
= (Crownwood.Magic.Menus.MenuCommand)sender;
InBlock.gif            DialogResult dr 
= MessageBox.Show( "Are you sure exit application now?","Warning!",MessageBoxButtons.YesNo,MessageBoxIcon.Warning );
InBlock.gif            
if ( dr == DialogResult.Yes )
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                Application.Exit();
ExpandedSubBlockEnd.gif            }

ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif

转载于:https://www.cnblogs.com/HD/archive/2005/10/27/263012.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值