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
Werte übergeben
Daniel_g
myCSharp.de - Member



Dabei seit:
Beiträge: 67

Themenstarter:

Werte übergeben

beantworten | zitieren | melden

Hallo!

Habe folgendes Problem ich habe ein Formular namens Login.cs
und will einen Wert unzwar den Benutzernamen an das Formular Benutzer.cs übergeben, wie realisiere ich so etwas?
private Nachricht | Beiträge des Benutzers
qwert_a
myCSharp.de - Member

Avatar #avatar-1911.gif


Dabei seit:
Beiträge: 57

beantworten | zitieren | melden

Beschreib bitte genauer was möchtest du haben.
sollte die Übertragung per Button-click erfolgen; Ist die Anwendung Multithreded...
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Daniel_g,

klarer Fall für die FAQ: Kommunikation von 2 Forms

Bitte vermeide voreilige Nachfragen. In der FAQ steht wirklich alles, was du brauchst.

herbivore
private Nachricht | Beiträge des Benutzers
qwert_a
myCSharp.de - Member

Avatar #avatar-1911.gif


Dabei seit:
Beiträge: 57

beantworten | zitieren | melden

Hab gerade etwas gebastelt:


using System;
using System.Windows.Forms;
using System.Drawing;

public class MyForm : Form
{
	private MyForm2 form;	
	private Button btAction = new Button();
	private String [] text = {"1111111111111",
					 "2222222222222",
					 "3333333333333",
					 "4444444444444",
					"5555555555555"};
	private int index = 0;
	
	public  MyForm(MyForm2 tmp)
	{
		this.form = tmp;
		this.Text = "My simple Form in UltraEdit";	
		this.btAction.Location = new Point(0, 0);
		this.btAction.Text = "Action";
		this.btAction.Click += new EventHandler(this.Action);
				
		this.Controls.Add(this.btAction);
	}
	
	private void Action(object source, EventArgs e)
	{
		
		if(this.index > 4) this.index = 0;
		form.setUserName(this.text[index]);
		index ++;
	}
}


public class MyForm2 : Form
{
	private TextBox txtText = new TextBox();
	public  MyForm2()
	{
		this.Text = "My simple Form in UltraEdit";	
		this.txtText.Location = new Point(0, 0);
		this.txtText.Size = new Size(200, 25);
		this.Controls.Add(this.txtText);
	}
	
	public void setUserName(string str)
	{
		this.txtText.Text = str; 	
	}
}

class MainApp
{
	public static void Main()
	{
		MyForm2 f2 = new MyForm2();
		MyForm f = new MyForm(f2);
		f2.Show();
		Application.Run(f);
	}	
}


private Nachricht | Beiträge des Benutzers
der Marcel
myCSharp.de - Member

Avatar #avatar-1860.gif


Dabei seit:
Beiträge: 564
Herkunft: Dresden

beantworten | zitieren | melden

Hallo Daniel_g!

Öffentliche Events, bei denen sich eine andere Form einklinken kann, können dazu benutzt werden. Die Events transpoertieren die benötigten Daten einfach mit, wenn sie gefeuert werden.

der Marcel
:] :DDer größte Fehler eines modernen Computers sitzt meist davor :]
private Nachricht | Beiträge des Benutzers
qwert_a
myCSharp.de - Member

Avatar #avatar-1911.gif


Dabei seit:
Beiträge: 57

beantworten | zitieren | melden

Zitat
Original von Daniel_g
Hallo Daniel_g!

Öffentliche Events, bei denen sich eine andere Form einklinken kann, können dazu benutzt werden. Die Events transpoertieren die benötigten Daten einfach mit, wenn sie gefeuert werden.

der Marcel

hi, der Marcel!

Wenn du mir sagen könntest was mache ich verkehrt...


using System;
using System.Windows.Forms;
using System.Drawing;

public class MyForm : Form
{
	private Button btAction = new Button();
	private String [] text = {"1111111111111",
									  "2222222222222",
									  "3333333333333",
									  "4444444444444",
									  "5555555555555"};
	public int index = 0;
	public delegate void OnSetText(string str);
	public event OnSetText doSetText;
	
		
	public  MyForm()
	{
		this.Text = "My simple Form in UltraEdit";	
		this.btAction.Location = new Point(0, 0);
		this.btAction.Text = "Action";
		this.btAction.Click += new EventHandler(this.Action);
		this.Controls.Add(this.btAction);
	}
	
	private void Action(object source, EventArgs e)
	{
		if(this.index > 4) this.index = 0;
		if (doSetText != null) 
			doSetText(this.text[index]);
		index ++;
	}
}

public class MyForm2 : Form
{
	private TextBox txtText = new TextBox();
	public  MyForm2()
	{
		this.Text = "My simple Form in UltraEdit";	
		this.txtText.Location = new Point(0, 0);
		this.txtText.Size = new Size(200, 25);
		this.Controls.Add(this.txtText);
	}
	
	public void setUserName(string str)
	{
		this.txtText.Text = str; 	
	}
}

class MainApp
{
	public static void Main()
	{
		MyForm2 f2 = new MyForm2();
		MyForm f = new MyForm();
		f.doSetText += new f.OnSetText(f2.setUserName); //<---Fehler!
		Application.Run(f);
	}	
}

Fehler:
2FormsMitEvents.cs(68,22): error CS0246: The type or namespace name 'f' could not be found (are you missing a using directive or an assembly reference?)
private Nachricht | Beiträge des Benutzers
qwert_a
myCSharp.de - Member

Avatar #avatar-1911.gif


Dabei seit:
Beiträge: 57

beantworten | zitieren | melden

Jetzt habe ich es. so ist es richtig.


class MainApp
{
	public static void Main()
	{
		MyForm2 f2 = new MyForm2();
		MyForm f = new MyForm();
		f.doSetText += new MyForm.OnSetText(f2.setUserName);
		f2.Show();
		Application.Run(f);
	}	
}
private Nachricht | Beiträge des Benutzers
der Marcel
myCSharp.de - Member

Avatar #avatar-1860.gif


Dabei seit:
Beiträge: 564
Herkunft: Dresden

beantworten | zitieren | melden

Hallo gwert_a!

Das ist nett von dir, dass du dir die Mühe machst und soviel Code tippst. Letztenendes finde ich aber, dass es für den Fragestellenden schwer ist, sich in soviel Code hineinzufinden. Schließilich wurde der Code nicht von Ihm geschrieben und zudem wirken deine (für dich verständlichen Berzeichnungen) für ihn dann vielleicht völlig aus dem Zusammenhang gerissen und unverständlich. Daher würde ich dir als Tipp geben, wenn du jemandem hilfst, nur die prägnantesten Teile als Code-Schnipsel zu geben.

der Marcel
:] :DDer größte Fehler eines modernen Computers sitzt meist davor :]
private Nachricht | Beiträge des Benutzers
qwert_a
myCSharp.de - Member

Avatar #avatar-1911.gif


Dabei seit:
Beiträge: 57

beantworten | zitieren | melden

Zitat
Original von der Marcel
Hallo gwert_a!

Das ist nett von dir, dass du dir die Mühe machst und soviel Code tippst. Letztenendes finde ich aber, dass es für den Fragestellenden schwer ist, sich in soviel Code hineinzufinden.

ich bin immer noch der Leier in Themen Programmierung und ich denke das aus dem Sicht des Leies ist es gar nicht schlecht das ganze Program zu Verfügung haben, da es ist manchmal schwer die Tips und Snipets zu impliementieren.
Ausserdem wusste ich bis heute morgen nicht wie die kommunikation zwischen 2 Formen zu gewährleisten. Hab also "so viel code" ehe für mich selbst geschrieben.
Auf jeden Fall danke für den Tip mit Events

qwert_a
private Nachricht | Beiträge des Benutzers