Apro un progetto vuoto.
Ci aggiungo i riferimenti (System.Windows.Forms) e li collego al programma;
aggiungo una classe mioForm.cs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Project10
{
class mioForm
{
}
}
Adesso faccio ereditare la mia classe dalla classe Form.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Project10
{
class mioForm:Form
{
}
}
Aggiungo il metodo
statico Main();
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Project10
{
class mioForm:Form
{
public static void Main()
{
}
}
}
Facendo partire questo, ottengo solo una fugace visualizzazione di una console.
Ora dichiaro e istanzio la mia classe derivata da Form, e faccio partire l'applicazione con il mio oggetto:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Project10
{
class mioForm:Form
{
public static void Main()
{
mioForm frm = new mioForm();
Application.Run(frm);
}
}
}
Ottengo una console e un form, che resta lì e devo chiudere con la "crocetta" in alto a destra per terminare l'esecuzione.
Ecco che mi viene fuori un codice generato automaticamente:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Project10
{
class mioForm:Form
{
public static void Main()
{
mioForm frm = new mioForm();
Application.Run(frm);
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// mioForm
//
this.ClientSize = new System.Drawing.Size(284, 261);
this.Name = "mioForm";
this.Load += new System.EventHandler(this.mioForm_Load);
this.ResumeLayout(false);
}
private void mioForm_Load(object sender, EventArgs e)
{
}
}
}
In più mi viene fuori un errore relativo al Drawing:
Errore 1 Il tipo 'System.Drawing.Size' è definito in un assembly di cui manca il riferimento. Aggiungere un riferimento all'assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. c:\users\antonello\documents\visual studio 2010\Projects\Project10\Project10\mioForm.cs 24 13 Project10
Errore 2 Il tipo o il nome dello spazio dei nomi 'Drawing' non esiste nello spazio dei nomi 'System'; probabilmente manca un riferimento a un assembly c:\users\antonello\documents\visual studio 2010\Projects\Project10\Project10\mioForm.cs 24 42 Project10
Introduco il riferimento a Drawing...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
Adesso funziona di nuovo.
Bene.
Il codice che si genera automaticamente una volta che viene fatto "partire" il form è:
private void InitializeComponent()
{
this.SuspendLayout();
//
// mioForm
//
this.ClientSize = new System.Drawing.Size(284, 261);
this.Name = "mioForm";
this.Load += new System.EventHandler(this.mioForm_Load);
this.ResumeLayout(false);
}
private void mioForm_Load(object sender, EventArgs e)
{
}
ossia il codice che inizializza il Form.
Però questo codice non viene eseguito all'atto della creazione del form.
Provo a cambiare il tipo di applicazione da "Applicazione Console" a "Applicazione WindowsForm" e ugualmente noto che il codice non viene eseguito, in quanto se cambio i parametri non risultano modificati.
Cambio le dimensioni del form:
private void InitializeComponent()
{
this.SuspendLayout();
//
// mioForm
//
this.ClientSize = new System.Drawing.Size(584, 261);
this.Name = "mioForm";
this.Load += new System.EventHandler(this.mioForm_Load);
this.ResumeLayout(false);
}
private void mioForm_Load(object sender, EventArgs e)
{
}
e il form mi viene sempre delle dimensioni standard.
Dunque devo ricreare il costruttore del form e metterci dentro la chiamata a InitializeComponent():
class mioForm:Form
{
public mioForm()
{
InitializeComponent();
}
public static void Main()
{
mioForm frm = new mioForm();
Application.Run(frm);
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// mioForm
//
this.ClientSize = new System.Drawing.Size(584, 261);
this.Name = "mioForm";
this.Load += new System.EventHandler(this.mioForm_Load);
this.ResumeLayout(false);
}
private void mioForm_Load(object sender, EventArgs e)
{
}
}
e adesso il form mi viene delle nuove dimensioni!