Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Neue Form öffnen
GhstEsl
myCSharp.de - Member

Avatar #avatar-2543.jpg


Dabei seit:
Beiträge: 20

Themenstarter:

Neue Form öffnen

beantworten | zitieren | melden

Hi, ich hab folgendes Problem:
Wenn ich auf einen Button klicke, öffnet sich eine 2.Form, und wenn ich diese wieder schließe und noch einmal öffen möchte,l bekomme ich eine Fehlermeldung, wie kann ich das abstellen?
Ich öffne meine neue Form immer so: (vielleicht liegt es ja an der methode)

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

private void button1_Click(object sender, System.EventArgs e)
{
	NeueForm.Show();
}

kann mir da vielleicht einer helfen?
private Nachricht | Beiträge des Benutzers
-acid-
myCSharp.de - Member



Dabei seit:
Beiträge: 891
Herkunft: Hessen

beantworten | zitieren | melden

das geht so:
Formname Objektname = new Formname();
Objektname.Show();
oder
Objektname.ShowDialog();

Umgesetzt heisst das dann:

Suchenform SF = new Suchenform();
...

vorrausgesetzt du hast das Formular bereits im Designmodus erstellt und bezeichnet. Wenn nicht musst du natürlich nur schreiben:

Form Objektname = new Form();

.........................................

Was ich aber nicht ganz nachvollziehen kann das hier schon 17 Leute reingeguckt haben und keiner ne Nachricht hinterlassen hat. Naja.
private Nachricht | Beiträge des Benutzers
GhstEsl
myCSharp.de - Member

Avatar #avatar-2543.jpg


Dabei seit:
Beiträge: 20

Themenstarter:

beantworten | zitieren | melden

Also der Fehler kommt immernoch, kann es sein, dass es dran liegt das ich [STAThread] löschen muss, damit ich das programm starten kann? weil wenn ich [STAThread] stehtn lasse, dann kommt folgender fehler:
Zitat
Attribute 'STAThread' is not valid on this declaration type. It is valid on 'method' declarations only.
private Nachricht | Beiträge des Benutzers
hauptmann
myCSharp.de - Member



Dabei seit:
Beiträge: 771
Herkunft: Österreich/Kärnten

beantworten | zitieren | melden

Zitat
Original von GhstEsl
Also der Fehler kommt immernoch, kann es sein, dass es dran liegt das ich [STAThread] löschen muss, damit ich das programm starten kann? weil wenn ich [STAThread] stehtn lasse, dann kommt folgender fehler:
Zitat
Attribute 'STAThread' is not valid on this declaration type. It is valid on 'method' declarations only.

Wo hast du das [STAThread] Attribut hingetan? Du musst es vor eine Funktion tun.
private Nachricht | Beiträge des Benutzers
-acid-
myCSharp.de - Member



Dabei seit:
Beiträge: 891
Herkunft: Hessen

beantworten | zitieren | melden

nein nein. ich denke du hast irgendwo was versehentlich gelöscht was unbedingt benötigt wird. das hat nix mit nem aufrufen der form zu tun.

hier mein komplettes projekt was nen button hat und beim klick die form aufruft.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace test
{
	/// <summary>
	/// Zusammendfassende Beschreibung für Form1.
	/// </summary>
	public class Form1 : System.Windows.Forms.Form
	{
		public System.Windows.Forms.Button button1;
		/// <summary>
		/// Erforderliche Designervariable.
		/// </summary>
		private System.ComponentModel.Container components = null;

		public Form1()
		{
			//
			// Erforderlich für die Windows Form-Designerunterstützung
			//
			InitializeComponent();

			//
			// TODO: Fügen Sie den Konstruktorcode nach dem Aufruf von InitializeComponent hinzu
			//
		}

		/// <summary>
		/// Die verwendeten Ressourcen bereinigen.
		/// </summary>
		protected override void Dispose( bool disposing )
		{
			if( disposing )
			{
				if (components != null) 
				{
					components.Dispose();
				}
			}
			base.Dispose( disposing );
		}

		#region Windows Form Designer generated code
		/// <summary>
		/// Erforderliche Methode für die Designerunterstützung. 
		/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
		/// </summary>
		private void InitializeComponent()
		{
			this.button1 = new System.Windows.Forms.Button();
			this.SuspendLayout();
			// 
			// button1
			// 
			this.button1.Location = new System.Drawing.Point(56, 144);
			this.button1.Name = "button1";
			this.button1.Size = new System.Drawing.Size(128, 24);
			this.button1.TabIndex = 0;
			this.button1.Text = "button1";
			this.button1.Click += new System.EventHandler(this.button1_Click);
			// 
			// Form1
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(292, 273);
			this.Controls.AddRange(new System.Windows.Forms.Control[] {
																		  this.button1});
			this.Name = "Form1";
			this.Text = "Form1";
			this.Load += new System.EventHandler(this.Form1_Load);
			this.ResumeLayout(false);

		}
		#endregion

		/// <summary>
		/// Der Haupteinstiegspunkt für die Anwendung.
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
		}

		private void button1_Click(object sender, System.EventArgs e)
		{
			Form SF = new Form();
			SF.Show();
		}
	}
private Nachricht | Beiträge des Benutzers
GhstEsl
myCSharp.de - Member

Avatar #avatar-2543.jpg


Dabei seit:
Beiträge: 20

Themenstarter:

beantworten | zitieren | melden

danke, jetzt gehts, ich hatte das "Form SF = new Form();" an die verkehrte stelle geschrieben
private Nachricht | Beiträge des Benutzers