返回首页

{A}
{S0}简介
我的爱好项目之一,我想用一个"主菜单"。而不是使用Windows菜单功能,我想对一些DHTML的样式下拉列表菜单。搜索后,我得到了许多收费和免费的控制,我只喜欢Infragestics控制。但在实践中,这是一个很大的混乱,我要安装整个事情,我的项目是变得过大,有不足的表现。所以我想我必须发展我梦想中的用户控制。
我想与大家分享我的新用户的控制,使你也可以使用它。这是很容易定制,如果你有C#的知识。使用代码
只需下载代码和添加到您的Windows窗体项目。菜单项可以被添加到控制使用:

ArrayList NavItems = new ArrayList();



ArrayList childNavItems = new ArrayList();

childNavItems.Add(new ctrlMenuBar.childNavItems("Leads", "mnuLeads"));

childNavItems.Add(new ctrlMenuBar.childNavItems("Project List", 

    "mnuProjectList"));

childNavItems.Add(new ctrlMenuBar.childNavItems("Development", 

    "mnuDevelopment"));



ctrlMenuBar.NavItem nv = new ctrlMenuBar.NavItem("Projects", "mnuProjects", 

    childNavItems, true);

NavItems.Add(nv);

在下面的行:ctrlMenuBar.NavItem("; Projectsquot","mnuProjectsquot,childNavItems,TRUE);真正的控制,无论是所选项目或不告诉。此参数是可选的。如果你把真实的多个项目,最后一个项目将被选定的项目。
渲染菜单,你必须调用该方法:{C}
一个典型的菜单初始化部分将看起来像这样:
private void frmMain_Load(object sender, EventArgs e)

{

    ArrayList NavItems = new ArrayList();



    ArrayList childNavItems = new ArrayList();

    childNavItems.Add(new ctrlMenuBar.childNavItems("Leads", "mnuLeads"));

    childNavItems.Add(new ctrlMenuBar.childNavItems("Project List", 

        "mnuProjectList"));

    childNavItems.Add(new ctrlMenuBar.childNavItems("Development", 

        "mnuDevelopment"));



    ctrlMenuBar.NavItem nv = new ctrlMenuBar.NavItem("Projects", 

        "mnuProjects", childNavItems, true);

    NavItems.Add(nv);

    childNavItems = new ArrayList();

    childNavItems.Add(new ctrlMenuBar.childNavItems("Client List", 

        "mnuClientList"));



    nv = new ctrlMenuBar.NavItem("Clients", "mnuClients", childNavItems);



    NavItems.Add(nv);



    childNavItems = new ArrayList();

    childNavItems.Add(new ctrlMenuBar.childNavItems("Developer List", 

        "mnuDeveloperList"));



    nv = new ctrlMenuBar.NavItem("Developers", "mnuDevelopers", 

        childNavItems);



    NavItems.Add(nv);



    childNavItems = new ArrayList();

    childNavItems.Add(new ctrlMenuBar.childNavItems("Reports","mnuReports"));

    childNavItems.Add(new ctrlMenuBar.childNavItems("Events", "mnuEvents"));

    childNavItems.Add(new ctrlMenuBar.childNavItems("Documents",

        "mnuDocuments"));

    nv = new ctrlMenuBar.NavItem("Utilities", "mnuUtilities", childNavItems);



    NavItems.Add(nv);



    ctrlMenuBar1.MenuItems = NavItems;

    ctrlMenuBar1.RenderMenu();

}

您可以捕捉从控制按钮单击事件方法OnMenuSelection()例如:屏幕的背后
用户控制(ctrlMenuBar.cs)背后的屏幕上使用两个子类的一个主类ctrlMenuBar:NavItem父菜单项和子菜单项childNavItems。历史
我仍然使用户控制的变化。每当有重大的变化是增加的,我会更新这篇文章。感谢我的用户控制试图。

回答

评论会员:venkat111 时间:2011/12/14
你可以请你告诉我一步一步的过程中使用MDI窗体控制

请尽快使其尽早..
评论会员:Pete1024 时间:2011/12/14
喜源似乎是不完整的,我错过了ctrlMenuBar.Designer.cs文件,可能也需要一些资源和财产的文件是编译。演示源也不错的!

干杯!皮特
- 修改4:49(星期四),2007年8月23日
评论会员:NinethSense 时间:2011/12/14
对不起,我会尽快更新源zip文件

到那时这里是ctrlMenuBar.Designer.cs代码


namespace BMT

{

    partial class ctrlMenuBar

    {

        /// <summary> 

        /// Required designer variable.

        /// </summary>

        private System.ComponentModel.IContainer components = null;

 

        /// <summary> 

        /// Clean up any resources being used.

        /// </summary>

        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>

        protected override void Dispose(bool disposing)

        {

            if (disposing && (components != null))

            {

                components.Dispose();

            }

            base.Dispose(disposing);

        }

 

        #region Component Designer generated code

 

        /// <summary> 

        /// Required method for Designer support - do not modify 

        /// the contents of this method with the code editor.

        /// </summary>

        private void InitializeComponent()

        {

            this.panel1 = new System.Windows.Forms.Panel();

            this.SuspendLayout();

            // 

            // panel1

            // 

            this.panel1.AutoScroll = true;

            this.panel1.BackColor = System.Drawing.Color.Transparent;

            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;

            this.panel1.Location = new System.Drawing.Point(0, 0);

            this.panel1.Name = "panel1";

            this.panel1.Size = new System.Drawing.Size(148, 190);

            this.panel1.TabIndex = 3;

            // 

            // ctrlMenuBar

            // 

            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

            this.BackgroundImage = global::BMT.Properties.Resources.btnBgnd;

            this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;

            this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;

            this.Controls.Add(this.panel1);

            this.Name = "ctrlMenuBar";

            this.Size = new System.Drawing.Size(148, 190);

            this.Load += new System.EventHandler(this.ctrlMenuBar_Load);

            this.ResumeLayout(false);

 

        }

 

        #endregion

 

        private System.Windows.Forms.Panel panel1;

    }

}



PraVeeN
blog.ninethsense.com /
评论会员:|11tehnn: 时间:2011/12/14
NinethSense
评论会员:游客 时间:2011/12/14
11?PraVeeNblog.ninethsense.com/
本文作者Ehsan戈尔卡
评论会员:游客 时间:2011/12/14
?continiue,is'n)
NinethSense
评论会员:游客 时间:2011/12/14
是啊imgsrc=http://www.orcode.com/upimg/2011_12_14_07_38_21_1.gifPraVeeNblog.ninethsense.com/