myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE
   » Gadget für Windows
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin

Ressourcen
» guide to C#
» openbook: Visual C#
» openbook: OO
» MSDN Webcasts
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: Windows-Forms » Aus MainForm RichTextBox beschreiben
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Aus MainForm RichTextBox beschreiben

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
wbach wbach ist männlich
myCSharp.de-Mitglied

Dabei seit: 21.04.2017
Beiträge: 19


wbach ist offline

Aus MainForm RichTextBox beschreiben

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Zusammen,

ich hänge an einem Problem fest.
Ich möchte parallel zur MainForm noch einen Logger mitfüheren und der Logger soll jedesmal aktualisiert werden, wenn ich was ergänze:

C#-Code:
namespace TIAPortalController
{
//Main Form
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }
    private void WriteTxtStatus(string Text, Color color)
    {
       ...
       var child = new Logger(this);
       child.CustomValue = passingText;
       child.Logger_Akt();
     }
     private void bu_openLog_Click(object sender, EventArgs e)
     {
       var child = new Logger(this);
       child.CustomValue = passingText;
       child.Show();
       child.Logger_Akt();
    }
  }


//Logger
  public partial class Logger : Form
  {
    public string CustomValue { get; set; }
    private Form1 parentForm;
    public Logger()
    {
      InitializeComponent();
    }
    public Logger(Form1 parent)
    {
      InitializeComponent();
      this.parentForm = parent;
    }
    private void Logger_Load(object sender, EventArgs e)
    {
      txt_Logger.Text = CustomValue;
    }
    public void Logger_Akt()
    {
      txt_Logger.Text = CustomValue;
     }
   }
}

Kann mir jemand sagen, wo ich hierbei den Fehler mache?

LG

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von wbach am 21.04.2017 14:14.

21.04.2017 14:12 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Coffeebean Coffeebean ist männlich
myCSharp.de-Team

images/avatars/avatar-3295.gif


Dabei seit: 25.08.2011
Beiträge: 1.909
Entwicklungsumgebung: VS 2005-2017, VS Code
Herkunft: Deutschland/Schweiz


Coffeebean ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo wbach,

was funktioniert denn nicht? Was ist das Problem? Hilf uns ein bisschen dir zu helfen.

 [FAQ] Kommunikation von 2 Forms

Gruss

Coffeebean
21.04.2017 14:29 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
wbach wbach ist männlich
myCSharp.de-Mitglied

Dabei seit: 21.04.2017
Beiträge: 19

Themenstarter Thema begonnen von wbach

wbach ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

der Logger wird nicht aktualisiert, wenn ich den String passingText beschreibe aus der Methode:

C#-Code:
private void WriteTxtStatus(string Text, Color color)
        {
            txt_Status.SelectionStart = txt_Status.TextLength;
            txt_Status.SelectionLength = 0;

            txt_Status.SelectionColor = color;
            txt_Status.AppendText(Text + Environment.NewLine);

            txt_Status.Select(txt_Status.Text.Length, 1);
            txt_Status.ScrollToCaret();
            passingText = txt_Status.Text;

            var child = new Logger(this);
            child.CustomValue = passingText;
            child.Logger_Akt();
        }

Wobei die Methode:

C#-Code:
private void bu_openLog_Click(object sender, EventArgs e)
        {
            passingText = txt_Status.Text;
            var child = new Logger(this);
            child.CustomValue = passingText;
            child.Show();
            child.Logger_Akt();
        }

funktioniert.
Gewünschter Effekt. Logger soll parallel den Status im txt_Status anzeigen.

Ich hoffe diese Informationen reichen aus. Sry, bin freizeit Programmierer :)

LG

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von wbach am 21.04.2017 14:37.

21.04.2017 14:36 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Coffeebean Coffeebean ist männlich
myCSharp.de-Team

images/avatars/avatar-3295.gif


Dabei seit: 25.08.2011
Beiträge: 1.909
Entwicklungsumgebung: VS 2005-2017, VS Code
Herkunft: Deutschland/Schweiz


Coffeebean ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo wbach,

hilft dir:

 [FAQ] Kommunikation von 2 Forms

Gruss

Coffeebean
21.04.2017 15:03 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
wbach wbach ist männlich
myCSharp.de-Mitglied

Dabei seit: 21.04.2017
Beiträge: 19

Themenstarter Thema begonnen von wbach

wbach ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ok, danke. Muss mich erstmal da reinarbeiten.
24.04.2017 09:58 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MAvEE
myCSharp.de-Mitglied

Dabei seit: 06.05.2015
Beiträge: 2


MAvEE ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Vielleicht hilft dir ja folgendes weiter:

- Erstelle ein neues WinForm Projekt und füg eine weitere Form ("Form2") hinzu.
- Platziere zwei Buttons auf Form1 und klick beide jeweils doppelt an um die Click_Handler zu erstellen
- Platziere eine Textbox auf Form2

Code von Form1:

C#-Code:
public partial class Form1 : Form
    {
        // Instanz vom Logger in Form1
        Form2 logger;

        public Form1()
        {
            InitializeComponent();
        }

        //Initalisiert die Instanz zu Form 2 und zeigt diese an
        private void button1_Click(object sender, EventArgs e)
        {
            logger = new Form2();
            logger.Show();
        }

        //Setzt den Text "Meldungstext" auf Form2
        private void button2_Click(object sender, EventArgs e)
        {
            string message = "Meldungstext";
            logger.SetText(message);
        }
    }

Code von Form2:

C#-Code:
public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        internal void SetText(string message)
        {
            textBox1.Text = message;
        }
    }

Eigentlich kommt es nur darauf an das Form1 die Instanz von Form2 festhält und Form2 eine Methode bereitstellt um den Text zu setzten.

Dein Fehler ist das du immer eine neue Instanz vom Logger öffnest. new Logger solltest du also nur einmal aufrufen.
Den bereits *geloggten* Text kannst du ja zusätzlich in einer variablen speichern, Sodass mit Show die alten Einträge angezeigt werden.
02.05.2017 03:05 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 4 Monate.
Der letzte Beitrag ist älter als 3 Monate.
Antwort erstellen


© Copyright 2003-2017 myCSharp.de-Team. Alle Rechte vorbehalten. 23.08.2017 04:09