string von programm.cs in MainForm.cs weiterbearbeiten

zecken81

Mitglied
Hey Leute


ich habe ein programm geschrieben, welches .*inf dateien generiert. Dazu klicke ich auf eine .*stl Datei und es öffnet sich mein Programm. Die .*stl Datei, mit der das Programm zum Start gebracht wurde hat einen beliebigen Namen. Den Namen bekomme ich auch als string raus. Der Name ist aber nur in der Programm.cs Datei bekannt. Um allerdings damit weiter arbeiten zu können, muss ich den Namen auch in der MainForm.cs kennen.


Hab etwas geoogelt und etwas mit Konstruktor und Wertübergabe gefunden. Bin aber leider nicht ganz schlau draus geworden.

Vielleicht kann mir hier ja jmd helfen.


Schönen tag euch noch
 
Du brauchst ein Attribut in deiner Fensterklasse und den Konstruktor musst du erweitern:

Code:
private String _fileNameParameter;

public Form1(String fileName) 
{
  this._fileNameParameter = fileName;
}

Der Aufruf sieht dann ungefähr so aus:
Code:
string fileName = args[0];
Application.Run(new Form1(fileName));
 
Also bei mir ist in der Programm.cs folgendes drin:

namespace BEGO
{
/// <summary>
/// Class with program entry point.
/// </summary>
internal sealed class Program
{
/// <summary>
/// Program entry point.
/// </summary>
[STAThread]
private static void Main(string[] args)
{

string displayString = string.Empty;
foreach (string s in args)
{
displayString += s + "\n";
}
MessageBox.Show(displayString);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());


und den String "displayString" will ich nun in meiner MainForm, die folgende Gestalt hat bekanntmachen.

namespace BEGO
{
/// <summary>
/// Description of MainForm.
/// </summary>
public partial class MainForm : Form

{

public MainForm()
{

// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
}
void MainFormLoad(object sender, EventArgs e)
{
}
void ComboBox1SelectedIndexChanged(object sender, EventArgs e)
{
}

void TextBox1TextChanged(object sender, EventArgs e)
{
}

void Button1Click(object sender, EventArgs e)
{

Die ganze Programmierung befindet sich hier im Button1 Feld.

Wenn mir da jmd weiterhelfen könnte wäre das echt cool
 
Mit Fensterklasse meine ich deine MainForm. Dort hast du einen Konstruktor, den muss du entsprechend anpassen. Beispiel siehe oben.

Zum Aufruf des ganzen: Du hast ohnehin nur ein Application.Run, also sollte diese Stelle auch nicht schwer zu finden sein.
 
Zurück