Avatar billede motz2405 Nybegynder
19. januar 2006 - 12:37 Der er 5 kommentarer og
1 løsning

Floating toolbars

Hvordan laver man en toolbar i C# (Visual Studio 2005) som når man dragger den ud på formen bliver omgivet af et title window?

Man kan sige at den skal opføre sig lige som når man flytter sine toolbars rundt i selvsamme program
Avatar billede bitsch Nybegynder
20. januar 2006 - 00:21 #1
Her er et eksempel som er plukket fra ms-help://MS.VSExpressCC.v80/MS.NETFramework.v20.en/cpref17/html/T_System_Windows_Forms_ToolStripPanel.htm
Du kan finde mere om sagen på MSDN.

namespace ToolStripPane
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    // This code example demonstrates how to use ToolStripPanel
    // controls with a multiple document interface (MDI).
    public class Form1 : Form
    {
   
        public Form1()
        {
            // Make the Form an MDI parent.
            this.IsMdiContainer = true;

            // Create ToolStripPanel controls.
            System.Windows.Forms.ToolStripPanel tspTop = new System.Windows.Forms.ToolStripPanel();
            System.Windows.Forms.ToolStripPanel tspBottom = new System.Windows.Forms.ToolStripPanel();
            System.Windows.Forms.ToolStripPanel tspLeft = new System.Windows.Forms.ToolStripPanel();
            System.Windows.Forms.ToolStripPanel tspRight = new System.Windows.Forms.ToolStripPanel();

            // Dock the ToolStripPanel controls to the edges of the form.
            tspTop.Dock = DockStyle.Top;
            tspBottom.Dock = DockStyle.Bottom;
            tspLeft.Dock = DockStyle.Left;
            tspRight.Dock = DockStyle.Right;

            // Create ToolStrip controls to move among the
            // ToolStripPanel controls.

            // Create the "Top" ToolStrip control and add
            // to the corresponding ToolStripPanel.
            ToolStrip tsTop = new ToolStrip();
            tsTop.Items.Add("Top");
            tspTop.Join(tsTop);

            // Create the "Bottom" ToolStrip control and add
            // to the corresponding ToolStripPanel.
            ToolStrip tsBottom = new ToolStrip();
            tsBottom.Items.Add("Bottom");
            tspBottom.Join(tsBottom);

            // Create the "Right" ToolStrip control and add
            // to the corresponding ToolStripPanel.
            ToolStrip tsRight = new ToolStrip();
            tsRight.Items.Add("Right");
            tspRight.Join(tsRight);

            // Create the "Left" ToolStrip control and add
            // to the corresponding ToolStripPanel.
            ToolStrip tsLeft = new ToolStrip();
            tsLeft.Items.Add("Left");
            tspLeft.Join(tsLeft);

            // Create a MenuStrip control with a new window.
            MenuStrip ms = new MenuStrip();
            ToolStripMenuItem windowMenu = new ToolStripMenuItem("Window");
            ToolStripMenuItem windowNewMenu = new ToolStripMenuItem("New", null, new EventHandler(windowNewMenu_Click));
            windowMenu.DropDownItems.Add(windowNewMenu);
            ((ToolStripDropDownMenu)(windowMenu.DropDown)).ShowImageMargin = false;
            ((ToolStripDropDownMenu)(windowMenu.DropDown)).ShowCheckMargin = true;

            // Assign the ToolStripMenuItem that displays
            // the list of child forms.
            ms.MdiWindowListItem = windowMenu;

            // Add the window ToolStripMenuItem to the MenuStrip.
            ms.Items.Add(windowMenu);

            // Dock the MenuStrip to the top of the form.
            ms.Dock = DockStyle.Top;

            // The Form.MainMenuStrip property determines the merge target.
            this.MainMenuStrip = ms;

            // Add the ToolStripPanels to the form in reverse order.
            this.Controls.Add(tspRight);
            this.Controls.Add(tspLeft);
            this.Controls.Add(tspBottom);
            this.Controls.Add(tspTop);

            // Add the MenuStrip last.
            // This is important for correct placement in the z-order.
            this.Controls.Add(ms);
        }

        // This event handler is invoked when
        // the "New" ToolStripMenuItem is clicked.
        // It creates a new Form and sets its MdiParent
        // property to the main form.
        void windowNewMenu_Click(object sender, EventArgs e)
        {
            Form f = new Form();
            f.MdiParent = this;
            f.Text = "Form - " + this.MdiChildren.Length.ToString();
            f.Show();
        }

        private void InitializeComponent()
        {
            this.SuspendLayout();
            //
            // Form1
            //
            this.ClientSize = new System.Drawing.Size(292, 266);
            this.Name = "Form1";
            this.ResumeLayout(false);

        }
    }
}
Avatar billede bitsch Nybegynder
20. januar 2006 - 00:25 #2
Avatar billede motz2405 Nybegynder
20. januar 2006 - 14:30 #3
OK. Jeg skal lige prøve det af i aften.
Avatar billede motz2405 Nybegynder
24. januar 2006 - 12:56 #4
Jeg kan ikke få det til at virke. De kan ikke flyde rundt i hele vinduet, men kun dockes  i hhv højre venstre top bund.
Avatar billede motz2405 Nybegynder
25. januar 2006 - 21:26 #5
Du kan smide et svar så kan du få point for din hjælp
Avatar billede bitsch Nybegynder
26. januar 2006 - 08:52 #6
Som eksemplet viser kan du kun flytte din toolbar rundt i et toolStripPanel eller mellem flere af disse. Så hvis dit design kræver at du skal kunne placere din toolbar over det hele, så må dit design afspelje dette.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester