13. september 2010 - 14:10Der er
10 kommentarer og 1 løsning
Delegate "Updater form object fra extern klasse"
Hej Eksperter, vil lige høre om der er nogle som kan hjælpe.
Jeg har en form klasse og en serialInterface klasse. I min form klasse er der et tekst-objekt (Angle) som skal updateres på baggrund af den modtagne data fra uarten. Denne køre i en seperat tråd.
--------- Main ------ public partial class Form1 : Form { public Form1() { InitializeComponent(); serialInterface SI = new serialInterface(); }
Ja jeg får følgende fejlmeddelelse knyttet til klassen serialInterface.cs
Error 1 'object' does not contain a definition for 'UpdateTextBox' and no extension method 'UpdateTextBox' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)
--- Main -----------------------------------------
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 WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); serialInterface SI = new serialInterface(this); }
public delegate void UpdateTextBoxDelegate(string message);
public void UpdateTextBox(string message) { if (Angle.InvokeRequired == true) { this.Invoke (new UpdateTextBoxDelegate(UpdateTextBox), new object[] { message }); } else { Angle.Text = message; } }
I serialinterface klassen skal du omdøbe 'sender' til 'senderform'
Altså : Form1 senderform = null;
og i 'port_DataReceived' metoden skal du så kalde 'senderform.UpdateTextBox("din tekst værdi");' i stedet for 'sender.UpdateTextBox("din tekst værdi");'.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.