Avatar billede lotze Nybegynder
08. januar 2007 - 09:16 Der er 15 kommentarer og
1 løsning

Tilføj Controls via programmering

Hej

Jeg vil gerne tilføje mine Controls via programmering og ikke via designeren.

eks.

private void MDIParent1_Load(object sender, EventArgs e)
        {

            SubMenu testSubMenu = new SubMenu();
            testSubMenu.InitializeComponent();

            testSubMenu.SetBounds(30, 30, 200, 200);

            this.Controls.Add(testSubMenu);
         
        }

testSubmenu er af klassen panel og det virker fint. Problemet er når jeg skal tilføje nogle ting til dette panel i min testSubmenu, så er jeg på herrens mark! Mangler et godt eksempel eller en god vejledning!

testSubmenu:

    class SubMenu : System.Windows.Forms.Panel
    {

    }
Avatar billede spif2001 Nybegynder
08. januar 2007 - 09:17 #1
Du kan bare gå ind i InitializeComponents metoden i en applikation hvor du har brugt designeren og se hvordan koden bliver sat op ;)
Avatar billede dr_chaos Nybegynder
08. januar 2007 - 09:19 #2
du gør bare sådan her:
testSubMenu.Controls.Add(new label);
Avatar billede lotze Nybegynder
08. januar 2007 - 09:27 #3
Jeg har været inde og kigge i InitializeComponents. Men syntes ikke det er lige sådan nemt!
Avatar billede lotze Nybegynder
08. januar 2007 - 09:28 #4
testSubMenu.Controls.Add(new label); virker ikke! Kan ikke engang compileres!
Avatar billede dr_chaos Nybegynder
08. januar 2007 - 09:29 #5
Det var også pseudo kode.
Du skal oprettet et nyt label og sætte f.eks. placering og navn osv på det og til sidste  bruger du testSubMenu.Controls.Add(dit label);
Avatar billede lotze Nybegynder
08. januar 2007 - 09:33 #6
Okay! Sorry
Avatar billede lotze Nybegynder
08. januar 2007 - 09:35 #7
Ja det er fint. Problemet er at jeg skal have tilføjet et objekt af typen.

DevExpress.XtraNavBar.NavBarControl NavBar = new DevExpress.XtraNavBar.NavBarControl();
Avatar billede lotze Nybegynder
08. januar 2007 - 09:36 #8
Og det virker ikke så godt! Kun omridset af Navbaren kan ses
Avatar billede dr_chaos Nybegynder
08. januar 2007 - 09:38 #9
Jeg kunne have forklaret det bedre :)
Avatar billede dr_chaos Nybegynder
08. januar 2007 - 09:41 #10
testSubMenu er det et panel ?
Avatar billede lotze Nybegynder
08. januar 2007 - 09:54 #11
ja forklaringen var nok ikke i top.

Og inden i det panel skal jeg have vist en NavBarControl.
Avatar billede lotze Nybegynder
08. januar 2007 - 09:56 #12
Sådan her ser det ud når man smider en NavBar ind i et panel på en form.

    private void InitializeComponent()
        {
            this.panel1 = new System.Windows.Forms.Panel();
            this.navBarControl1 = new DevExpress.XtraNavBar.NavBarControl();
            this.navBarGroup1 = new DevExpress.XtraNavBar.NavBarGroup();
            this.panel1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)(this.navBarControl1)).BeginInit();
            this.SuspendLayout();
            //
            // panel1
            //
            this.panel1.Controls.Add(this.navBarControl1);
            this.panel1.Location = new System.Drawing.Point(285, 77);
            this.panel1.Name = "panel1";
            this.panel1.Size = new System.Drawing.Size(342, 249);
            this.panel1.TabIndex = 1;
            //
            // navBarControl1
            //
            this.navBarControl1.ActiveGroup = this.navBarGroup1;
            this.navBarControl1.Groups.AddRange(new DevExpress.XtraNavBar.NavBarGroup[] {
            this.navBarGroup1});
            this.navBarControl1.Location = new System.Drawing.Point(86, 43);
            this.navBarControl1.Name = "navBarControl1";
            this.navBarControl1.Size = new System.Drawing.Size(140, 141);
            this.navBarControl1.TabIndex = 0;
            this.navBarControl1.Text = "navBarControl1";
            //
            // navBarGroup1
            //
            this.navBarGroup1.Caption = "navBarGroup1";
            this.navBarGroup1.Expanded = true;
            this.navBarGroup1.Name = "navBarGroup1";
            //
            // Form1
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(652, 358);
            this.Controls.Add(this.panel1);
            this.IsMdiContainer = true;
            this.Name = "Form1";
            this.Text = "Form1";
            this.Load += new System.EventHandler(this.Form1_Load);
            this.panel1.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)(this.navBarControl1)).EndInit();
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.Panel panel1;
        private DevExpress.XtraNavBar.NavBarControl navBarControl1;
        private DevExpress.XtraNavBar.NavBarGroup navBarGroup1;
    }
Avatar billede dr_chaos Nybegynder
08. januar 2007 - 10:03 #13
du skal bruge noget i denne stil:
private void MDIParent1_Load(object sender, EventArgs e)
        {

            SubMenu testSubMenu = new SubMenu();
            testSubMenu.InitializeComponent();

            testSubMenu.SetBounds(30, 30, 200, 200);

            Controls.Add(testSubMenu);
         
DevExpress.XtraNavBar.NavBarControl navBarControl1 = new DevExpress.XtraNavBar.NavBarControl();
DevExpress.XtraNavBar.NavBarGroup navBarGroup1 = new DevExpress.XtraNavBar.NavBarGroup();

// navBarControl1
            //
            navBarControl1.ActiveGroup = navBarGroup1;
            navBarControl1.Groups.AddRange(new DevExpress.XtraNavBar.NavBarGroup[] {
            navBarGroup1});
            navBarControl1.Location = new System.Drawing.Point(86, 43);
            navBarControl1.Name = "navBarControl1";
            navBarControl1.Size = new System.Drawing.Size(140, 141);
            navBarControl1.TabIndex = 0;
            navBarControl1.Text = "navBarControl1";
            //
            // navBarGroup1
            //
            navBarGroup1.Caption = "navBarGroup1";
            navBarGroup1.Expanded = true;
            navBarGroup1.Name = "navBarGroup1";

testSubMenu.Controls.Add(navBarControl1);
}
Avatar billede dr_chaos Nybegynder
08. januar 2007 - 10:04 #14
Der skal sætte en del forskellige ting op.
Muligvis passer placering og andet ikke.
Avatar billede lotze Nybegynder
08. januar 2007 - 10:16 #15
Fedt, jeg fik det til at virke i første hug!

Jeg havde ikke styr på opsætningen af navBarControl eller rettere sagt den manglede.

Smid et svar og du får point!
Avatar billede dr_chaos Nybegynder
08. januar 2007 - 10:21 #16
svar :)
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