Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

C#: Variablen zwischen Forms übergeben

thorsten.h / 2 Antworten / Flachansicht Nickles

Guten Abend,

ich habe eine Windows-Application in C# geschrieben.
Es sollen nun die 3 Variablen txt_pfad, stl_pfad und D von Form1 nach Form3 übergeben werden.

Der Quelltext (Ausschnitte) sieht so aus:

FORM1:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace TXT_to_STL
{
public partial class hauptfenster : Form
{
public string stl_pfad;
public string txt_pfad;
public string D;

public hauptfenster()
{
InitializeComponent();
}

private void button_open_Click(object sender, EventArgs e)
{
if (dialog_open.ShowDialog() == DialogResult.OK)
{
if (dialog_open.FileName != null)
{ txt_pfad = dialog_open.FileName; }
}
}

private void button_save_Click(object sender, EventArgs e)
{
if (dialog_save.ShowDialog() == DialogResult.OK)
{
if (dialog_save.FileName != null)
{ stl_pfad = dialog_save.FileName; }
}
}

public void button_ok_Click(object sender, EventArgs e)
{
if (stl_pfad != null & txt_pfad != null &
textfeld_nadel.SelectedIndex != -1)
{
if (textfeld_nadel.SelectedIndex == 0) D = "0.4";
if (textfeld_nadel.SelectedIndex == 1) D = "1.0";
if (textfeld_nadel.SelectedIndex == 2) D = "2.0";

prozessfenster prozess = new prozessfenster();
prozess.ShowDialog();
prozess.proceed();
}
}
}
}


------------------------------------------------
FORM3:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace TXT_to_STL
{
public partial class prozessfenster : Form
{
public prozessfenster()
{
InitializeComponent();
}

public void proceed()
{
hauptfenster haupt = new hauptfenster();
prozessfenster proz = new prozessfenster();

string D = haupt.D;

StreamWriter output = File.CreateText(@haupt.stl_pfad);
output.WriteLine("solid TXT_to_STL");

StreamReader input = File.OpenText(haupt.txt_pfad);
string zeile = input.ReadLine();

while (zeile != null)
{
double x = 0, y = 0, z = 0;
char[] leerzeichen = new char[] { ' ' };
foreach (string zahl in zeile.Split(leerzeichen))
{
x = double.Parse(zahl);
y = double.Parse(zahl);
z = double.Parse(zahl);
}

output.WriteLine(" vertex {0:E} {1:E} {2:E}", x,
y, z);

zeile = input.ReadLine();
}

output.Write("endsolid TXT_to_STL");
input.Close();
output.Close();
}
}
}


Das Übergeben der Variablen funktioniert so nicht. Wie ist hier der richtige Ansatz?
Ich hoffe, ihr seid nicht zu sehr "erschlagen" von meinem Quellcode und könnt helfen.

Vielen Dank schonmal.

Gruß
Thorsten

bei Antwort benachrichtigen