Forum: PC-Programmierung c# parameter an form übergeben


von grundschüler (Gast)


Lesenswert?

1
     private void button8_Click(object sender, EventArgs e)
2
        {
3
            Process.Start(@"C:\ra_vc\anz_test\bin\Debug\net6.0-windows\anz_test.exe");
4
    /*        Form2 frm = new Form2();
5
6
            Form frm = new Anz();
7
            // abhängig von Form1
8
            frm.Show(this);
9
10
            Form frm = new Anz.anz();
11
            // abhängig von Form1
12
            frm.Show(this);
13
      */
14
            }

ich möchte werte aus einer Form in einer anderen anzeigen, die sich nach 
10 sec automatisch schließt. Nach längerem probieren habe ich eine neue 
form mit einem Timer angelegt, die über process.exe gestartet wird.

Das funktioniert - scheint mir aber noch nicht die ideale Lösung zu 
sein. Geht es besser?

In der Form sollen Werte angezeigt werden.

In der Hauptform habe ich eine globale Variable erstellt:

1
namespace ra_ide
2
{
3
    public static class Global
4
    {
5
        public static string globalwert = "test";
6
    }

Wie gelingt jetzt der Zugriff auf diese globale Variable in der anderen 
Form.

ra_ide.Global.globalwert funktioniert nicht. wert in Textdatei speichern 
und dann auslesen halte ich für zu umständlich.

Danke für Unterstützung

von Martin (Gast)


Lesenswert?

Du vererbst einfach die Eigenschaften der Form auf eine selbst erstellte 
neue Klasse. Diese hat dann als Eingangsparameter den Wert, der 
angezeigt werden soll.

von Martin (Gast)


Lesenswert?

Form 1
1
using System.Windows.Forms;
2
3
namespace WindowsFormsApp1
4
{
5
    public partial class Form1 : Form
6
    {
7
        public Form1()
8
        {
9
            InitializeComponent();
10
            Form2 form2 = new Form2("Mein Wert");
11
            form2.Show();
12
        }
13
    }
14
}

Form 2
1
using System;
2
using System.Windows.Forms;
3
4
namespace WindowsFormsApp1
5
{
6
    public partial class Form2 : Form
7
    {
8
        public Form2(string meinWert)
9
        {
10
            InitializeComponent();
11
            labWert.Text = meinWert;
12
            Timer tmrClose = new Timer()
13
            {
14
                Interval = 10000,
15
                Enabled = true
16
            };
17
            tmrClose.Tick += TmrClose_Tick;
18
        }
19
20
        private void TmrClose_Tick(object sender, EventArgs e)
21
        {
22
            this.Close();
23
        }
24
    }
25
}

von grundschüler (Gast)


Lesenswert?

Danke für den Post. Das hilft schon mal weiter.

Wenn ich das so mache, öffnet sich eine "formanz". Das ist dann 
allerdings nicht das Projekt, das ich als Form1 angelegt habe, sondern 
ein leere neue Form. wenn ich jetzt noch wüsste, wo ich diese Form finde 
und wie ich sie bearbeiten kann?
       private void button8_Click(object sender, EventArgs e)
        {
            Form1 formanz = new Form1("Mein Wert");
               formanz.Show();

Kann ich die "formanz" irgendwie dauerhaft in das Projekt einfügen?


Mein Problem ist wohl, dass ich von vs2010 auf vs2021 umgestiegen bin 
und von dem Umfang noch etwas erschlagen bin.

von grundschüler (Gast)


Lesenswert?

geklärt - geht problemlos mit Form einfügen - muss man nur finden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.