Laden...

Form sendet String vor click auf OK

Erstellt von AVieFotografy vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.581 Views
A
AVieFotografy Themenstarter:in
2 Beiträge seit 2015
vor 8 Jahren
Form sendet String vor click auf OK

Hi an alle,

ich habe eine Hauptform sowie eine Nebenform aus der Nebenform soll ein String an die Hauptform gesendet werden, da es in C# ja keine Input Boxen gibt, allerdings sendet die Form den Wert schon vor Drücken des Ok Button, ich kann leider nicht herausfinden wieso das so ist.

hier ist der Code:

Hauptform

 private void btnLoad_Click(object sender, EventArgs e)
        {
            string sReceiveLink;
            try
            {
                CleanUp();

                frmInputBox frmInputBox = new frmInputBox();
                frmInputBox.Show();
                sReceiveLink = frmInputBox.sLinkToSend;
                lblLinkLeft.Text = sReceiveLink;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Properties.Resources.sErrorMainHeader, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

Nebenform

public partial class frmInputBox : Form
    {
        public frmInputBox()
        {
            InitializeComponent();
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            try
            {
                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Properties.Resources.sErrorMainHeader, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        public string sLinkToSend;

        private void btnOk_Click(object sender, EventArgs e)
        {
            try
            {
                this.sLinkToSend = txtLink.Text; 
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Properties.Resources.sErrorMainHeader, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

Hat jemand eine Idee wieso dies so ist?

Danke
Andi

16.806 Beiträge seit 2008
vor 8 Jahren

Ich seh hier nicht mal irgendeine Aktion, die den String an die Hauptform senden würde.
Aber eigentlich ist das relativ leicht raus zu finden, wenn man einfach mit dem Debugger durchsteppt und entsprechende Breakpoints setzt.
[Artikel] Debugger: Wie verwende ich den von Visual Studio?

J
251 Beiträge seit 2012
vor 8 Jahren
I
45 Beiträge seit 2012
vor 8 Jahren

Es gibt keine Inputbox ? Echt nicht ?
Aber man könnte sich eine selbst zimmern, auch für spätere projekte.

  1. ein kleines Fenster mit einer Titelzeile, einem Textfeld, einem OK- und Escape-Button
  2. das Fenster erhält zwei Felder: boolean _ok und string _eingabe
    _ok wird gesetzt wenn OK gerückt wurde
    _eingabe enthält den Text (bei OK)
  3. OK und Escape schließen das Minifenster
    4 statische Funktion String Inputbox(...), die ein solches Minifenster instantiiert und das Ergebnis rausreicht

Sollte als Roadmap reichen

Ich hab mir sowas gebastelt und: seeehr nützlich

F
10.010 Beiträge seit 2004
vor 8 Jahren

Richtig lesen.
Genau das ist doch was er hier probiert aber nicht versteht was .Show() macht.