Avatar billede Slettet bruger
26. februar 2006 - 18:02 Der er 1 løsning

Event vs WinForm problem

Hej Eksperter,
Jeg sidder og koder lidt med events, jeg støder på et problem som jeg umiddlebart ikke kan se en løsning på (derfor man spørger her jo :) )

Jeg har en winform og en klasse, når min event bliver trigget i min klasse, skal der opdateres en værdi i min winform.


Jeg har barberet godt og grundigt i min kode, og smider her det vigtigste:

Windows form:

public partial class Form1 : Form
{
    ModemHandle HandleModem;

    private void Form1_Load(object sender, EventArgs e)
    { 
        HandleModem = new ModemHandle("com1");
        HandleModem.NewSignal += new ModemHandle.SignalDelegate(HandleModem_NewSignal);
    }

    private void HandleModem_NewSignal(object sender, int SignalStrength)
    {
        int test = SignalStrength; //Virker
        textbox.Text = SignalStrength.ToString(); //Fejler
    }
}

Klasse:

class ModemHandle
{
    public delegate void SignalDelegate(object sender, int SignalStrength);
    public event SignalDelegate NewSignal;
    private void OnNewSignal(int SignalStrength)
    {
        if (NewSignal != null)
            NewSignal(this, SignalStrength);
    }
}

Jeg kan sagtens smide værdien fra min event ned i en variabel, men at smide det ind i en control i min winform giver denne fejl:


System.InvalidOperationException was unhandled
  Message="Cross-thread operation not valid: Control '' accessed from a thread other than the thread it was created on."
Avatar billede lifo Nybegynder
26. februar 2006 - 18:15 #1
private void HandleModem_NewSignal(object sender, int SignalStrength)
    {
if(InvokeRequired){
Delegate del = new ModemHandle.SignalDelegate(HandleModem_NewSignal);
Invoke(del,new Object[]{sender,SignalStrength});
return
}
        int test = SignalStrength; //Virker
        textbox.Text = SignalStrength.ToString(); //Fejler
    }
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester