2012-01-24 9 views
6

Me gustaría saber si hay una manera de crear un programa GUI, con la función main() (como en la aplicación de consola), entonces estoy creando todos los objetos en main() y puedo acceder/cambiar desde las otras funciones conectadas con botones/cuadros de texto, etc. ¿Es posible? ; p¿Dónde está el método Principal en una aplicación de formularios?

Por favor, comprenda que soy muy principiante con las GUI, las cosas de las que estoy hablando pueden ser divertidas, pero aún así, ¡quiero aprender! Gracias :)

+6

** Cada programa ** C# comienza con un método 'Main()', incluso si usa una GUI. Simplemente no te dicen esto. (No directamente de todos modos.) – BoltClock

+0

Bueno, pero no es como si tuviera que acceder a la función llamada "Main ("), me gustaría encontrar allí un lugar para trabajar como en "main" con aplicaciones de consola, ¿es posible? : p – Patryk

+0

Usted * do * tiene acceso al principal. mira mi respuesta a continuación. – OnResolve

Respuesta

16

Cuando crea Windows forma proyecto (A Gui uno), tiene un bucle principal - De hecho, requiere uno. Por defecto, está en Program.cs y se da inicio a su formulario:

static class Program 
{ 
    /// <summary> 
    /// The main entry point for the application. 
    /// </summary> 
    [STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new Form1()); 
    } 
} 

Lo que es probable que desee, aunque es el constructor de formularios. Esto está en el código detrás del formulario (por defecto Form1.cs) y tendrá el siguiente aspecto:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent();  
    }   
} 
+0

y cómo crear una cadena en main para que pueda leerla con el cuadro de texto? : P – Patryk

+0

Esta lógica * podría * ir en Form1() [constructor para el formulario]. Uso vagamente ya que pertenece a una función fuera del constructor, pero para la demostración, puede hacer String myString = txtMyTextBox.Text siempre que tenga un cuadro de texto en el formulario y el id es 'txtMyTextBox'. Si tiene problemas para llegar allí, debe realizar una copia de seguridad y comenzar desde una etapa más inicial. – OnResolve

+0

bueno, hay un textBox1, hay un String myString = textBox1.Text; (en main) y aún así, en main tengo esto: 'El nombre' textBox1 'no existe en el contexto actual' – Patryk

2

Una aplicación WinForm se inicia a partir principal

static void Main() 
{ 
    Application.Run(new Form1()); 
} 

Lo que usted quiere hacer en main se puede hacerlo aquí

Cuestiones relacionadas