namespace c_1_1
{
/// <summary>
/// Summary description for form.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
/// <summary>
/// Main menu for the form.
/// </summary>
private System.Windows.Forms.MainMenu mainMenu1;
public Form1()
{
InitializeComponent();
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.Menu = this.mainMenu1;
this.Text = "Form1";
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
{
Application.Run(new Form1());
CréerBaseDeDonnées();
}
void CréerBaseDeDonnées()
{
if (System.IO.File.Exists("BandeDessinée.sdf") == false)
{ SqlCeEngine engine new SqlCeEngine("Data source BandeDessinée.sdf");
engine.CreateDatabase();
engine.Dispose();
}
}
...
L'erreur est : An object reference is required for the nonstatic field méthod, or property : c1_1.form1.CréerBaseDeDonnées();
Voila J'espère que vous pourrez m'aider ! Quelle est l'erreur ?
le constructeur de ta class Form1 est :
public Form1()
{
InitializeComponent();
}
et le :
static void Main()
{
...
}
C'est le point d'entré de ton programme...
Ta méthode ici, ne s'executera que l'orsque ton Application.Run(..) sera terminé, c'est à dire quand tu aura ici fermé ta form1.
Le premier problème, ici, n'est pas que CréerBaseDeDonnées est appelée après Application.Run(...), mais que cette méthode n'est pas statique, donc tu ne peux pas l'appeler dans Main (méthode statique) sans disposer d'une instance.
Donc, soit tu déplace l'appel à CréerBaseDeDonnées dans le constructeur de la classe (comme te le conseille ZeBobo5), soit tu changes le code de Main pour qu'il ressemble à cela :
<HR>
Form1 form = new Form1();
form.CréerBaseDeDonnées();
Application.Run(form);
<HR>
Tu peux également faire de CréerBaseDeDonnées une méthode statique, puisque apparemment elle n'accède jamais à des membres d'instance.
Merci à vous j'ai fais l'appel de mes fonctions dans :
public Form1()
{
InitializeComponent();
ici
}
MErci beaucoup ! Cela fais 3 semaines que j'essaye de créer tes tables vaec du code :)
Il suffit juste que j'y arrive en Vb.Net CF2.0 pasque la c'est du CF1.0 :)