Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Windows Forms TextBox aus extra Thread ändern
sitt
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

Windows Forms TextBox aus extra Thread ändern

beantworten | zitieren | melden

Hallo.
Ich habe noch nicht viel Erfahrung in der Entwicklung von Oberflächen.

Also ich habe folgendes Problem: Ich habe mir eine TextBox auf die Oberfläche erstellt und einen default Anzeigetext definiert. Nun möchte ich den Text der Anzeige ändern indem ich die TextRefresh Methode, aus einem anderen Thread heraus aufrufe und dieser true oder false übergebe. Leider habe ich keine Textänderung an der Anzeige. Könnt ihr mir helfen??

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


namespace Updater
{
	public partial class ConnectingServer : Form
	{
		public ConnectingServer()
		{
			InitializeComponent();
		}

		public void TextRefresh(bool status)
		{
			if (status == true)
			{
				ConStatus_TextChanged( null,null);
			}
			else
			{
				ConStatus_TextChanged( this, null);
			}
		}

		private void progressBar1_Click(object sender, EventArgs e)
		{
			progressBar1.Minimum = 0;
			progressBar1.Maximum = 100;
			progressBar1.Value = 100;
		}

		private void button1_Click(object sender, EventArgs e)
		{
			Application.Exit();
		}


		private void panel2_Paint(object sender, PaintEventArgs e)
		{

		}

		private void ConStatus_TextChanged(object sender, EventArgs e)
		{
			if (sender != null)
			{
				this.ConStatus.Text = "VERBUNDEN";
			}
			else
			{
				this.ConStatus.Text = "NICHT VERBUNDEN";
			}
		}
	}
}

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von sitt am .
private Nachricht | Beiträge des Benutzers
michlG
myCSharp.de - Experte

Avatar #avatar-2909.png


Dabei seit:
Beiträge: 3.430
Herkunft: Naturns - Südtirol - Italien

beantworten | zitieren | melden

Hallo sitt,

also wenn du es aus einem anderen Thread heraus ändern willst dann musst du unbedingt das hier beachten: [FAQ] Warum blockiert mein GUI? und [FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke)

Zudem wäre es einfacher wenn du einen isOnline boolean Wert verwendest. Dann kannst du dir diese ganzen Stringvergleiche ersparen.

Wenn du wissen willst wo der Fehler ist dann verwendest du am Besten den Debugger um mal Zeile für Zeile durch den Code zu gehen

Gruß
Michael
private Nachricht | Beiträge des Benutzers
sitt
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

So hatte den falschen Code geladen, der vorherige war zum testen sorry. Hier nun der originale mit dem Problem.
Danke für die Info. Das heißt also, ich kann nicht aus einem anderen Thread heraus über eine eingefügte methode direkt den Text der Anzeige ändern?
private Nachricht | Beiträge des Benutzers
Easyrider
myCSharp.de - Member



Dabei seit:
Beiträge: 200
Herkunft: Bayern

beantworten | zitieren | melden

Nein, weil das ein ungültiger Threadübergreifender Vorgang wäre. In den oben genannten Links findest du mehr Infos darüber.
private Nachricht | Beiträge des Benutzers