Quote:
Originally Posted by qkuh
Du kannst es auch so machen:
Code:
private void setEnabled(string control, bool setEnabled)
{
Button btn = (Button)Controls.Find(control, true)[0];
if (btn.InvokeRequired)
{
btn.Invoke((MethodInvoker)delegate
{
btn.Enabled = setEnabled;
});
}
else
{
btn.Enabled = setEnabled;
}
}
|
Sieht auch nicht gerade einfacher aus ^^
Quote:
Originally Posted by Shawak
geht viel einfacher:
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
namespace ui_threading
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
System.Threading.Tasks.Task.Factory.StartNew(() =>
{
Label1.Text = "Text1";
Thread.Sleep(5000);
Label1.Text = "Text2";
});
}
}
}
|
Bist du dir sicher, dass dies so funktioniert. Bei mir kommt immer noch der Fehler : Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement lbl_test erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.
Quote:
Originally Posted by Schlüsselbein
|
Okay muss ich mir näher ansehen.
Danke für die Antworten.
Ich hätte eine weitere kleine Frage : Wie kann ich eine 2. Klasse erstellen, die Methoden beinhaltet, die auch z.B Label's ändern kann ?