TextBox einer anderen Form per Button befüllen
Ich benötige mal wieder eure Hilfe
ich möchte per Button eine textBox einer anderen Form (StartForm) mit bestimmten Text "Beispiel Text" befüllen.
Ich habe eine StartForm und eine Form 2, in der StartForm befindet sich eine textBox.
In der Form 2 habe ich ein ButtonNeustart der die komplette Application komplett restartet.
Ist es möglich, dass nach ButtonNeustart Click und Restart der Anwendung die textBox in der StartForm automatisch mit einen bestimmten Text befüllt wird?
Die textBox der StartForm darf nur nach dem ButtonNeustart Click mit den Text befüllt werden, bei einen normalen Start der Anwendung soll die textBox der StartForm leer bleiben.
Noch eine Frage:
in das Hauptfenster der Anwendung habe ich eine Yes No Abfrage für das Schließen der Anwendung eingebaut (FormClosing), ist es möglich das die Yes No Abfrage beim ButtonNeustart nicht abgefragt wird, und die Anwendung ohne Abfrage neu startet?
Gruß
ich möchte per Button eine textBox einer anderen Form (StartForm) mit bestimmten Text "Beispiel Text" befüllen.
Ich habe eine StartForm und eine Form 2, in der StartForm befindet sich eine textBox.
In der Form 2 habe ich ein ButtonNeustart der die komplette Application komplett restartet.
Ist es möglich, dass nach ButtonNeustart Click und Restart der Anwendung die textBox in der StartForm automatisch mit einen bestimmten Text befüllt wird?
Die textBox der StartForm darf nur nach dem ButtonNeustart Click mit den Text befüllt werden, bei einen normalen Start der Anwendung soll die textBox der StartForm leer bleiben.
Noch eine Frage:
in das Hauptfenster der Anwendung habe ich eine Yes No Abfrage für das Schließen der Anwendung eingebaut (FormClosing), ist es möglich das die Yes No Abfrage beim ButtonNeustart nicht abgefragt wird, und die Anwendung ohne Abfrage neu startet?
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 499484
Url: https://administrator.de/contentid/499484
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
7 Kommentare
Neuester Kommentar
Guten Morgen,
von der Vorgehensweise müsstest du das so umsetzen:
ButtonClick:
1. Start Form öffnen mit
2. Text Box füllen mit
3. Form in der der Button hinterlegt ist schließen mit
Danach sollte deine StartForm angezeigt werden, Textbox befüllt sein und deine Form2 geschlossen sein.
Edit: Nicht getestet, aber so würde ich ansetzen.
Gruß joehuba
von der Vorgehensweise müsstest du das so umsetzen:
ButtonClick:
1. Start Form öffnen mit
StartForm-Name.Show()
StartForm-Name.TextBox-Name.Text = "DeinText"
Me.Close()
Danach sollte deine StartForm angezeigt werden, Textbox befüllt sein und deine Form2 geschlossen sein.
Edit: Nicht getestet, aber so würde ich ansetzen.
Gruß joehuba
Hi.
Man ändert die Main() Methode der Anwendung in der program.cs erst mal so ab das diese Parameter akzeptiert.
Dann erstellt man noch eine öffentliche Variable in der man den String zwischenspeichert sofern er der Anwendung übergeben wurde
Dann im Code der Form1 prüft man diese Variable auf Inhalt und setzt den Inhalt der Textbox sofern sie nicht leer ist:
Form2 ruft man mit dem Inhalt des Strings der Textbox auf:
Im Code der Form2 speichert man sich den übergebenen String zwischen und ruft man nun die Anwendung mit Parameter dem String als Parameter auf:
Fertig.
Statt dem Übergeben des Strings an Form2 und Anpassung im Konstruktur, kann man natürlich auch eine globale Variable nutzen die man nach Ändern des Textes aktualisiert, das ist dann eine Frage des Geschmacks.
Gruß
Zitat von @wiesi200:
im Endeffekt musst du beim Click auf dem Button irgendwo außerhalb einen Flag hinterlegen. Config Datei, Registry oder sonst wo.
Es geht auch ohne externe Zwischenspeicherung. Und zwar so dass man der Anwendung den String per Anwendungs-Parameter übergibt.im Endeffekt musst du beim Click auf dem Button irgendwo außerhalb einen Flag hinterlegen. Config Datei, Registry oder sonst wo.
Man ändert die Main() Methode der Anwendung in der program.cs erst mal so ab das diese Parameter akzeptiert.
Dann erstellt man noch eine öffentliche Variable in der man den String zwischenspeichert sofern er der Anwendung übergeben wurde
namespace MyForms {
static class Program {
public static string mystring;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string args) {
if (args.Length == 1) {
mystring = args;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
Form2 ruft man mit dem Inhalt des Strings der Textbox auf:
namespace MyForms {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
if (Program.mystring != "") {
textBox1.Text = Program.mystring;
}
}
private void btnOpenForm2_Click(object sender, EventArgs e) {
Form2 f = new Form2(textBox1.Text);
f.ShowDialog(this);
}
}
}
namespace MyForms {
public partial class Form2 : Form {
string s;
public Form2() {
InitializeComponent();
}
public Form2(string s) {
InitializeComponent();
this.s = s;
}
private void button1_Click(object sender, EventArgs e) {
Process.Start(Application.ExecutablePath, s);
Application.Exit();
}
}
}
Statt dem Übergeben des Strings an Form2 und Anpassung im Konstruktur, kann man natürlich auch eine globale Variable nutzen die man nach Ändern des Textes aktualisiert, das ist dann eine Frage des Geschmacks.
Gruß
Zitat von @wiesi200:
Nur: er will ja die Anwendung neu starten und dann sind die Info's die du in das Textfeld schreibst leider weg, wenn du die nicht irgenwo außerhalb der Anwendung speicherst.
Nein sind sie nicht. Die Anwendung wird mit dem String als Commandline-Parameter neu gestartet. Und da er das ja nur haben will wenn die Anwendung über die zweite Form neu gestartet wird ist das ja auch kein Problem.Nur: er will ja die Anwendung neu starten und dann sind die Info's die du in das Textfeld schreibst leider weg, wenn du die nicht irgenwo außerhalb der Anwendung speicherst.
Zitat des TO
Zitat von @Knuefi:
Die textBox der StartForm darf nur nach dem ButtonNeustart Click mit den Text befüllt werden, bei einen normalen Start der Anwendung soll die textBox der StartForm leer bleiben.
Die textBox der StartForm darf nur nach dem ButtonNeustart Click mit den Text befüllt werden, bei einen normalen Start der Anwendung soll die textBox der StartForm leer bleiben.