C# Windows Forms Form1 Form 2 Label text durch Button setzen

Gast #6332705
Lesenswert?

Wie kann ich in Form 1 ein Label setzen, indem ich in Form 2 ein Button 
drücke? Form 2 ist das Label aus FRorm 1 nicht bekannt

 Kenne mich mit C# nicht aus. Wie wäre es mit:
1
// Form 1
2
public void MAM()
3
        {
4
            lblINIT_Test.Text = "Der Test ist erfolgreich initialisiert. Auf Test starten drücken";
5
        }
6

7
// Form 2
8
Form1.MAM ();

Also das die Methode aus Form 1 in Form 2 aufgerufen wird. Ich weiß 
nichtmal, ob sotwas in C# funktioniert
Gast #6332712
Lesenswert?

>
> // Form 2
> Form1.MAM ();
>
> Also das die Methode aus Form 1 in Form 2 aufgerufen wird. Ich weiß
> nichtmal, ob sotwas in C# funktioniert

also wie ein Funktionsaufruf in C. Müsste doch so klappen?
Gast #6332882
Lesenswert?

Pala schrieb:
> was hat das mit meiner sache zu tun?

In den man sich das Leben einfach macht und die Label vorher einfach 
erstellt und Visible = false setzt. Da du keine Label-Invasion machst 
sollte das so reichen. Danach einfach mit Varianten des Befehl das Label 
positionieren, und die Eigenschaften setzen etc.
Gast #6332884
Lesenswert?

Schlaumaier schrieb:
> In den man sich das Leben einfach macht und die Label vorher einfach
> erstellt und Visible = false setzt. Da du keine Label-Invasion machst
> sollte das so reichen. Danach einfach mit Varianten des Befehl das Label
> positionieren, und die Eigenschaften setzen etc.

wo ist denn der Unterschied in der Umsetzung, ich visible true zuweise 
oder einen Text=?
Gast #6332891
Lesenswert?

ganz einfach.  Du erstellst in Form 1 die max. mögliche Anzahl an Label 
die du brauchst. Nun kannst du (musst aber nicht) die an ein Array 
übergeben.

Dann setzt du alle Label auf Visable = FALSE.

In Form 2 passiert bei deinen Klick auf den Button folgendes.

form1.label(1).visable  = true
form1.label(1).Top = form1.top + 200 ' positioniert die Label falls 
nötig
form1.label(1).Top = form1.left + 100
form1.label(1).backcolor = color.white ' Farbe falls nötig
form1.label(1)forecolor = color.black

form1.label(1).text = "In bin ein feines label"

Der Code geht davon aus das die Label in ein Array sind.

Ist zwar VB-Code aber sollte in VC genau so gehen.
Gast #6332915
Lesenswert?

Form1:
1
    public partial class Form1 : Form
2
    {
3
        public Form1()
4
        {
5
            InitializeComponent();
6
        }
7

8
        private void Form1_Load(object sender, EventArgs e)
9
        {
10
            Form2 form2 = new Form2(ref label1);
11
            form2.Show();
12
        }
13
    }

Form2:
1
    public partial class Form2 : Form
2
    {
3
        Label labelInForm1;
4

5
        public Form2(ref Label labelInForm1)
6
        {
7
            this.labelInForm1 = labelInForm1;
8
            InitializeComponent();
9
        }
10

11
        private void button1_Click(object sender, EventArgs e)
12
        {
13
            labelInForm1.Text = "Hallo!";
14
        }
15
    }
Gast #6332999
Lesenswert?

warum ist das so scheiße mit den variablenübergaben in Forms gemacht?

mir wäre es lieber, man könnte im Namespace globa´le variablen 
definieren, die in jeder Form gelten und je nach Programmfluss werte 
annehmen. mich fuckt das ab
#6333009
Lesenswert?

Pala schrieb:
> warum ist das so scheiße mit den variablenübergaben in Forms gemacht?
>
> mir wäre es lieber, man könnte im Namespace globa´le variablen
> definieren, die in jeder Form gelten und je nach Programmfluss werte
> annehmen. mich fuckt das ab

Hast du denn mal den mehrfach von mir erwähnten delegate versucht?

Zitat: »Delegate« ist das englische Wort für »Delegierter«, also für 
jemanden, der einen Auftrag weiterleiten soll. Tatsächlich leitet ein 
Delegat weiter, er leitet nämlich einen Methodenaufruf an eine bestimmte 
Methode weiter. Die Technik, die sich dahinter verbirgt, wird in der 
Sprache C auch als Funktionszeiger bezeichnet.

Quelle: 
http://openbook.rheinwerk-verlag.de/visual_csharp_2012/1997_05_001.html

Beschäftige dich mal etwas damit. Tipp: Gib in google doch mal "C# 
delegate Form1 Form2" ein. Da findest du haufenweise Leute mit der 
gleichen Frage und mögliche Antworten darauf.
Gast #6333017
Lesenswert?

Miro V. schrieb:
> Beschäftige dich mal etwas damit. Tipp: Gib in google doch mal "C#
> delegate Form1 Form2" ein. Da findest du haufenweise Leute mit der
> gleichen Frage und mögliche Antworten darauf.

ja danke dir. Nur: ich muss mich für variablen mit so einer scheiße 
beschäftigen????? das geht mir nicht in den Kopp. da erstelle ich lieber 
auf die schnelle nh Headerdatei mit meiner leiben schönen variable. echt 
lächerlich.
#6333022
Lesenswert?

Pala schrieb:
> Miro V. schrieb:
>> Beschäftige dich mal etwas damit. Tipp: Gib in google doch mal "C#
>> delegate Form1 Form2" ein. Da findest du haufenweise Leute mit der
>> gleichen Frage und mögliche Antworten darauf.
>
> ja danke dir. Nur: ich muss mich für variablen mit so einer scheiße
> beschäftigen????? das geht mir nicht in den Kopp. da erstelle ich lieber
> auf die schnelle nh Headerdatei mit meiner leiben schönen variable. echt
> lächerlich.

Das ist ganz und garnicht lächerlich. Dir fehlt wichtiges Grundwissen, 
wenn du dich nicht einmal mit Variablen beschäftigt hast. Nimm es mir 
nicht übel, aber Programmieren - vor allem sicher programmieren - ist 
ein Prozess des lernens. Ohne mich mit Mehl, dem Ofen, den Zutaten zu 
beschäftigen, könnte ich auch nicht backen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren