2012-01-24 18 views
6

Chciałbym wiedzieć, czy istnieje sposób na stworzenie programu GUI z funkcją main() (tak jak w aplikacji konsolowej), więc tworzę wszystkie obiekty w main() i mogę uzyskać dostęp/zmienić go z inne funkcje związane z przyciskami/textboxami itp. Czy jest to możliwe? ; pGdzie jest główna metoda w formularzu wniosku?

Proszę zrozumieć, że jestem bardzo początkującym z GUI, rzeczy, o których mówię, mogą być śmieszne, ale mimo to chcę się uczyć! Dzięki :)

+6

** Każdy program ** C# zaczyna się od metody 'Main()', nawet jeśli używa GUI. Po prostu ci tego nie mówią. (Nie tak czy inaczej.) – BoltClock

+0

Cóż, ale to nie jest tak, że muszę mieć dostęp do funkcji o nazwie "Main ("), chciałbym znaleźć tam miejsce do pracy, jak w "main" z aplikacjami konsolowymi, czy to możliwe? : p – Patryk

+0

Ty * masz * dostęp do głównej. spójrz na moją odpowiedź poniżej. – OnResolve

Odpowiedz

16

Podczas tworzenia projektu formularza Windows (A Gui) ma on główną pętlę - w rzeczywistości wymaga jednego. Domyślnie jest to w Program.cs i rozpoczyna swoją postać:

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()); 
    } 
} 

Co prawdopodobnie chcesz, chociaż jest Konstruktor Form. Jest to kod związany postaci (domyślnie Form1.cs) i będzie wyglądać następująco:

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

i jak utworzyć ciąg w głównym, aby można go było odczytać z pola tekstowego? : P – Patryk

+0

Ta logika * może * iść w Form1() [konstruktor formularza]. Używam go może luźno, ponieważ należy on do funkcji spoza konstruktora, ale do demonstracji, możesz zrobić String myString = txtMyTextBox.Text pod warunkiem, że masz pole tekstowe w formularzu, a id to "txtMyTextBox". Jeśli masz problemy z dotarciem do tego miejsca, musisz wykonać kopię zapasową i zacząć od bardziej początkowego etapu. – OnResolve

+0

cóż, tam jest textBox1, istnieje ciąg myString = textBox1.Text; (w głównym) i nadal, w głównym mam to: "Nazwa" textBox1 "nie istnieje w bieżącym kontekście" – Patryk

2

Aplikacja WinForm zaczyna się od głównego

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

co chcesz robić w main ty może to zrobić tutaj

Powiązane problemy