Avatar billede maabjerg Nybegynder
16. september 2005 - 22:11 Der er 10 kommentarer

Hvordan kan jeg få den til at åbne 2 forms under opstart?

Hej

Jeg sidder et lille problem, jeg har lavet et program som skal åbne en form udover mainformen starter.

Jeg har indsat følgende kode:

Form promtLogon = new Form();
promtLogon.Show();

i Mainformen onload... men den åbner bare en hel tom form.. hvordan gør jeg dette rigtigt, og så også hvordan åbner jeg ellers normalt andre forms.?

Håber nogen kan hjælpe mig med dette problem.
Avatar billede polle007 Nybegynder
16. september 2005 - 22:15 #1
I stedet for Form (som jo ganske givet er tom) så bruger du vel navnet på den form du oprettet

DinAndenForm promptLogon = new DinAndenForm();
Avatar billede maabjerg Nybegynder
16. september 2005 - 22:19 #2
Det er min nye form der hedder: promtLogon, og den første hedder: MainForm

Har koden sådan her nu:
promtLogin MainForm = new Form();
promtLogon.Show();

Men den melder følgende fejl i kompileren:

MainForm.cs(28,4): error CS0246: Typen eller navneområdenavnet 'promtLogon' kunne ikke findes (mangler der et 'using'-direktiv eller en assemblyreference?)
MainForm.cs(29,13): error CS0246: Typen eller navneområdenavnet 'promtLogon' kunne ikke findes (mangler der et 'using'-direktiv eller en assemblyreference?)

Build complete -- 2 errors, 0 warnings
Avatar billede Syska Mester
16. september 2005 - 22:29 #3
promtLogin MainForm = new Form();
promtLogon.Show();
til:
promtLogin MainForm = new promtLogin();
promtLogon.Show();

Da det er en promtLogin du vil lave en instans af, og ikke en Form som er base class promtLogin nok arver fra....

// ouT
Avatar billede Syska Mester
16. september 2005 - 22:30 #4
ups, fejl, sådan her:
promtLogin MainForm = new Form();
promtLogon.Show();
til
promtLogin MainForm = new promtLogin();
MainForm.Show();
Avatar billede Syska Mester
16. september 2005 - 22:30 #5
Da det jo selvf er din MainForm du lige har oprettet du vil vise....

Går ud fra at promtLogin er din klasse....
Avatar billede maabjerg Nybegynder
16. september 2005 - 22:35 #6
Sorry er ret ny indenfor C#, men kan lige prøve at forklare det:

-> Jeg har en form der hedder: MainForm, det er den der startes op hver gang i starten.
-> Jeg har en form der hedder: promtLogin - det er den form jeg gerne vil have frem
-> Men jeg har ingen klasse, skal man bruge det for at kunne åbne en anden form?

/maabjerg
Avatar billede maabjerg Nybegynder
16. september 2005 - 22:36 #7
Altså den class jeg har i MainForm filen er:
public class MainForm : System.Windows.Forms.Form {

her er hele koden for MainForm.cs:

/*
* Created by SharpDevelop.
* User: Steffen Maabjerg
* Date: 16-09-2005
* Time: 18:03
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using System.Windows.Forms;

namespace maabjerg_corp
{
    /// <summary>
    /// Description of MainForm.
    /// </summary>
    public class MainForm : System.Windows.Forms.Form
    {
        private System.Windows.Forms.Button button1;
        public MainForm()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();
           
            promtLogin MainForm = new promtLogin();
            MainForm.Show();
           
            //
            // TODO: Add constructor code after the InitializeComponent() call.
            //
        }
       
        [STAThread]
        public static void Main(string[] args)
        {
            Application.Run(new MainForm());
           
        }
       
        #region Windows Forms Designer generated code
        /// <summary>
        /// This method is required for Windows Forms designer support.
        /// Do not change the method contents inside the source code editor. The Forms designer might
        /// not be able to load this method if it was changed manually.
        /// </summary>
        private void InitializeComponent() {
            System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(MainForm));
            this.button1 = new System.Windows.Forms.Button();
            this.SuspendLayout();
            //
            // button1
            //
            this.button1.Location = new System.Drawing.Point(416, 120);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(40, 24);
            this.button1.TabIndex = 0;
            this.button1.Text = "button1";
            this.button1.Click += new System.EventHandler(this.Button1Click);
            //
            // MainForm
            //
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
            this.ClientSize = new System.Drawing.Size(640, 512);
            this.Controls.Add(this.button1);
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.Name = "MainForm";
            this.Text = "MainForm";
            this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
            this.Load += new System.EventHandler(this.MainFormLoad);
            this.ResumeLayout(false);
        }
        #endregion
        void Button1Click(object sender, System.EventArgs e)
        {
            Application.Exit();
        }
       
        void MainFormLoad(object sender, System.EventArgs e)
        {
                                 
           
        }
       
    }
}
Avatar billede Syska Mester
16. september 2005 - 23:06 #8
public static void Main(string[] args)
        {
            Application.Run(new MainForm());
           
        }
til:
        public static void Main(string[] args)
        {
            Application.Run(new MainForm());
            loginPromt myLoginPromt = new loginPromt();
            // ShowDialog() så skal bruge tage en action på her form, før han vender tilbage til main formen.....
            myLoginPromt.ShowDialog();
           
        }
Avatar billede Syska Mester
16. september 2005 - 23:08 #9
public MainForm()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();
           
            promtLogin MainForm = new promtLogin();
            MainForm.Show();
           
            //
            // TODO: Add constructor code after the InitializeComponent() call.
            //
        }
Ret "MainForm" til et andet navn da, da du på den måde du har lavet det nu, angiver et klasse navn, men du skal angive et unikt navn for den nye klasse....
altså
"MainForm" til "myLoginPromt" eller noget i den retning

// ouT
Avatar billede Syska Mester
18. september 2005 - 12:05 #10
Fået det til at virke?
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