【原創源碼】(01):利用事件-委託,實現主-子表單動態顯示,不同功能表列,不同工具列。(類似SQL Server 2000 企業管理器)

來源:互聯網
上載者:User

【原創源碼】(01):利用事件-委託,實現主-子表單動態顯示,不同功能表列,不同工具列。(類似SQL Server 2000 企業管理器)

歡迎大家發表意見(漏洞,效能等)。在部落格園社區以外轉載,請註明作者和出處。謝謝!

1,建立工程“EnterpriseManagerWindow”。

2,添加主介面“frmMain.cs”(Windows表單)。

   在“frmMain.cs”中添加控制項“menuStrip1”(MenuStrip)。

   設定“frmMain.cs”的屬性:IsMdiContainer=True。

   設定“frmMain.cs”的屬性:MainMenuStrip=menuStrip1。

   在“menuStrip1”中添加控制項“fileToolStripMenuItem”(ToolStripMenuItem)
   在“menuStrip1”中添加控制項“actionToolStripMenuItem”(ToolStripMenuItem)
   在“menuStrip1”中添加控制項“viewToolStripMenuItem”(ToolStripMenuItem)
   在“menuStrip1”中添加控制項“toolsToolStripMenuItem”(ToolStripMenuItem)
   在“menuStrip1”中添加控制項“windowToolStripMenuItem”(ToolStripMenuItem)
   在“menuStrip1”中添加控制項“helpToolStripMenuItem”(ToolStripMenuItem)

   在“windowToolStripMenuItem”中添加控制項“consoleToolStripMenuItem”(ToolStripMenuItem)
   在“windowToolStripMenuItem”中添加控制項“designToolStripMenuItem”(ToolStripMenuItem)

3,添加子介面“frmConsole.cs”(Windows表單)。

   在“frmConsole.cs”中添加控制項“toolStrip1”(ToolStrip)。

   在“toolStrip1”中添加控制項“forwardToolStripButton”(ToolStripButton)
   在“toolStrip1”中添加控制項“backToolStripButton”(ToolStripButton)

   在“frmConsole.cs”中添加委託,事件,觸發方法,以及一個FormClosed事件代碼。
     

   public delegate void FormExitEventHandler();
        public event FormExitEventHandler ExitEvent;
        private void OnPost()
        {
            if (this.ExitEvent != null)
            {
               this.ExitEvent();
            }
        } 
        private void frmConsole_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.OnPost();
        }

 

4,添加子介面“frmDesign.cs”(Windows表單)。

   在“frmDesign.cs”中添加控制項“toolStrip1”(ToolStrip)。

   在“toolStrip1”中添加控制項“saveToolStripButton”(ToolStripButton)
   在“toolStrip1”中添加控制項“attributeToolStripButton”(ToolStripButton)
   在“toolStrip1”中添加控制項“setPrimaryKeyToolStripButton”(ToolStripButton)

   在“frmConsole.cs”中添加委託,事件,觸發方法,以及一個FormClosed事件代碼。
      

  public delegate void FormExitEventHandler();
        public event FormExitEventHandler ExitEvent;
        private void OnPost()
        {
            if (this.ExitEvent != null)
            {
               this.ExitEvent();
            }
        } 
        private void frmDesign_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.OnPost();
        }

5,在主介面“frmMain.cs”中添加2個方法,2個事件。
       

 private void consoleToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmConsole obj = new frmConsole();
            obj.ExitEvent += new frmConsole.FormExitEventHandler(ConsoleExit);            
            obj.MaximizeBox = true;
            obj.MinimizeBox = true;
            obj.ShowInTaskbar = false;
            obj.StartPosition = FormStartPosition.Manual;
            obj.WindowState = FormWindowState.Maximized;
            obj.MdiParent = this;
            obj.Show();
        }

        private void ConsoleExit()
        {
            this.fileToolStripMenuItem.Visible = true;
            this.actionToolStripMenuItem.Visible = true;
            this.viewToolStripMenuItem.Visible = true;
            this.toolsToolStripMenuItem.Visible = true;
            this.windowToolStripMenuItem.Visible = true;
            this.helpToolStripMenuItem.Visible = true;
        }

        private void designToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.fileToolStripMenuItem.Visible = true;
            this.actionToolStripMenuItem.Visible = false;
            this.viewToolStripMenuItem.Visible = false;
            this.toolsToolStripMenuItem.Visible = false;
            this.windowToolStripMenuItem.Visible = true;
            this.helpToolStripMenuItem.Visible = true;

            frmDesign obj = new frmDesign();
            obj.ExitEvent += new frmDesign.FormExitEventHandler(DesignExit);
            obj.MaximizeBox = true;
            obj.MinimizeBox = true;
            obj.ShowInTaskbar = false;
            obj.StartPosition = FormStartPosition.Manual;
            obj.WindowState = FormWindowState.Maximized;
            obj.MdiParent = this;
            obj.Show();
        }

        private void DesignExit()
        {
            this.fileToolStripMenuItem.Visible = true;
            this.actionToolStripMenuItem.Visible = true;
            this.viewToolStripMenuItem.Visible = true;
            this.toolsToolStripMenuItem.Visible = true;
            this.windowToolStripMenuItem.Visible = true;
            this.helpToolStripMenuItem.Visible = true;
        }

6, 附原始碼:http://files.cnblogs.com/ClarkChan/EnterpriseManagerWindow_060920.rar

注意!在部落格園社區以外轉載,必須註明:
作者:Clark Chan
和原文出處:http://clarkchan.cnblogs.com/
否則謝絕轉載!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.