Hallo,
ich bin am experimentieren mit einem neuen Projekt, dort würde es sich lohnen je nach Auswahl ein für den (Import von Daten unterschiedlicher Quellen) Zweck optimiertes Usercontrol zu verwenden.
Soweit ist auch alles kein Problem, das funktioniert alles wie es soll. Dem jeweiligen Usercontrol wird auch das Dataset mit Übergeben, funktioniert auch. Allerdings kann ich das Usercontroll nicht mehr einfach auf die Form ziehen, das funktioniert mit der DS-Erweiterung nicht. Macht auch nichts, ist auch nicht erwünscht die Form fix mit einem Usercontrol zu laden.
Ich möchte die Vörgänge, die in diesen UCLs angestoßen werden und zeitfressend sind, dem Anwender darstellen. Dazu würde mir die Ausgabe von Statusinformationen auf dem ToolStripStatusLabel im StatusStrip auf der Form reichen.
Die Vorgänge selbst werden mit gestartet, die GUI friert nicht ein.
Ich bekomme es jedoch nicht hin, dass ich wie unter anderem hier beschrieben, auf der Form ein im UCL vorhandenes Ereignis abonnieren kann.
Dazu habe ich unterschiedliche aber immerhin alles ähnliche Wege ausprobiert, alle scheiterten an der selben Stelle.
Hier der Code soweit aus dem Usercontrol:
Spoiler anzeigen
Die benötigte Klasse
Im Usercontrol gibt es auch keinen Fehler.
Hier der Code der Form, soweit es den Aufruf betrifft:
Spoiler anzeigen
Hat jemand einen Rat für mich, wie ich das Problem lösen kann?
Ich habe mit eigene Formen für diese Dinge angefangen, was aber optisch etwas unpassend in dem Projekt ist.
ich bin am experimentieren mit einem neuen Projekt, dort würde es sich lohnen je nach Auswahl ein für den (Import von Daten unterschiedlicher Quellen) Zweck optimiertes Usercontrol zu verwenden.
Soweit ist auch alles kein Problem, das funktioniert alles wie es soll. Dem jeweiligen Usercontrol wird auch das Dataset mit Übergeben, funktioniert auch. Allerdings kann ich das Usercontroll nicht mehr einfach auf die Form ziehen, das funktioniert mit der DS-Erweiterung nicht. Macht auch nichts, ist auch nicht erwünscht die Form fix mit einem Usercontrol zu laden.
Ich möchte die Vörgänge, die in diesen UCLs angestoßen werden und zeitfressend sind, dem Anwender darstellen. Dazu würde mir die Ausgabe von Statusinformationen auf dem ToolStripStatusLabel im StatusStrip auf der Form reichen.
Die Vorgänge selbst werden mit gestartet, die GUI friert nicht ein.
Ich bekomme es jedoch nicht hin, dass ich wie unter anderem hier beschrieben, auf der Form ein im UCL vorhandenes Ereignis abonnieren kann.
Dazu habe ich unterschiedliche aber immerhin alles ähnliche Wege ausprobiert, alle scheiterten an der selben Stelle.
Hier der Code soweit aus dem Usercontrol:
C#-Quellcode
- public partial class uclxxxxxLoadData : UserControl
- {
- public event EventHandler<TextIOEventArgs> TextRawReceivedEvent;
- protected virtual void OnTextRawReceived(string textReceived)
- {
- EventHandler<TextIOEventArgs> textRawReceived = this.TextRawReceivedEvent;
- if (textRawReceived != null)
- {
- textRawReceived(this, new TextIOEventArgs(textReceived));
- }
- }
- private void btnGPData2MigData_Click(object sender, EventArgs e)
- {
- OnTextRawReceived("Kopieren läuft, bitte warten...");
- //weiteres, was aber funktioniert ..
- }
Die benötigte Klasse
TextIOEventArgs
ist natürlich vorhanden.Im Usercontrol gibt es auch keinen Fehler.
Hier der Code der Form, soweit es den Aufruf betrifft:
C#-Quellcode
- public UserControl ucl = null;
- private void cmbExternalSystemType_SelectionChangeCommitted(object sender, EventArgs e)
- {
- if (ucl != null)
- {
- this.tlpTest.Controls.Remove(ucl);
- ucl = null;
- }
- if (cmbExternalSystemType.SelectedIndex == 1)
- {
- ucl = new uclxxxxxLoadData(this.migrationDataSet1);
- ucl.TextRawReceivedEvent += ucl_StatusText_Event; //"UserControl" enthällt keine Definition für "TextRawReceivedEvent" und es konnte keine TextRawReceivedEvent-Erweiterungsmethode gefunden werden, die ein erstes Argument vom Typ UserControll akzeptiert.
- this.tlpTest.Controls.Add(ucl, 0, 0);
- }
- }
- public void ucl_StatusText_Event(Object objSender, EventArgs e)
- {
- if (e != null)
- this.tssl_Status.Text = e.ToString();
- }
Hat jemand einen Rat für mich, wie ich das Problem lösen kann?
Ich habe mit eigene Formen für diese Dinge angefangen, was aber optisch etwas unpassend in dem Projekt ist.