Oprettet tir. d. 29. juni 2010 kl. 14:08:02

koppelgaard
koppelgaard (3.930 point. Point ude: 0)

Listbox index kan ikke ændres

Jeg vil gerne ændre en aflæse listboxindex med en baggrundstråd.
Kan desværre ikke få lov.

Fejlen er følgende
Cross-thread operation not valid: Control 'listBox_Pressure' accessed from a thread other than the thread it was created on.

Jeg skal vel bruge en deligate til af aflæse med, men hvordan laver man sådan en?

Har følgende til at ÆNDRE index:
private delegate void ListboxDelegate(int index);
private void ChangeListbox(int index)
        {
            if (listBox_Pressure.InvokeRequired)
                listBox_Pressure.Invoke(new ListboxDelegate(ChangeListbox),index);
            else
            {
                listBox_Pressure.SelectedIndex = index;
                listBox_Pressure.Refresh();
            }
        }

men den kan jo ikke bruges.

Skrevet tir. d. 29. juni 2010 kl. 23:42:06| #1

buzzzz
buzzzz (46.576 point)
ifyoudo.net
say woot ...

Hvad siger du giver overstående fejl?

Skrevet ons. d. 30. juni 2010 kl. 08:28:09| #2

koppelgaard
koppelgaard (3.930 point)
Åh ja det glemte jeg at skrive præcist.
Linien:
if (listBox_Pressure.TopIndex != listBox_Pressure.SelectedIndex)
{
bla bla
}

giver problemet.
/M

Skrevet ons. d. 30. juni 2010 kl. 08:29:46| #3

koppelgaard
koppelgaard (3.930 point)
Og jeg synes det er underligt, at der er en "get", der giver og ikke en "set" der giver problemet.

Skrevet lør. d. 03. juli 2010 kl. 00:48:34| #4

buzzzz
buzzzz (46.576 point)
ifyoudo.net
Ja, jeg er i hvert fald tom for ideer ... troede kun det var "set" der gav de problemer. Men det tyderoverstående så på at det ikke kun er.

mvh

Skrevet lør. d. 03. juli 2010 kl. 08:44:10| #5

koppelgaard
koppelgaard (3.930 point)
Har faktisk også problemer med set.
Kommer aldrig ind og får ændret index.

Skrevet lør. d. 03. juli 2010 kl. 12:34:27| #6

buzzzz
buzzzz (46.576 point)
ifyoudo.net
Lav et ultra minimalt eksemple som genskaber problemet ved dig, og så smid det online ... så vil jeg kigge på det.

mvh

Skrevet lør. d. 03. juli 2010 kl. 13:47:33| #7

koppelgaard
koppelgaard (3.930 point)
Tak det vil jeg gøre.
Kan desværre ikke komme i kontakt med min computer på arbejde.
Der er noget råddent ved forbindelsen.
Måske først på mandag -  øv

Skrevet man. d. 05. juli 2010 kl. 19:22:27| #8

koppelgaard
koppelgaard (3.930 point)
Hej Buzzzz. Nåede ikke at lave eksemplet i dag. Og nu er det ferie - 3  uger :-)
Vender tilbage efter ferie.

/K

Skrevet tir. d. 31. august 2010 kl. 13:43:36| #9

peppino
peppino (18.120 point)
this.Invoke(new Action(delegate{
if (listBox_Pressure.TopIndex != listBox_Pressure.SelectedIndex)
{
bla bla
}
}));

Hvad med dette, gjorde det nogen forskel?

Skrevet ons. d. 01. september 2010 kl. 12:56:33| #10

koppelgaard
koppelgaard (3.930 point)
tak for dit input!
Jeg har fået det til at virke via delegate:

private void ListboxSelectNextItem()
        {           
            if (listBox_Pressure.InvokeRequired)
                listBox_Pressure.Invoke(new ListboxDelegate(ListboxSelectNextItem));
            else
            {
                int index = listBox_Pressure.SelectedIndex+1;
                if (index < listBox_Pressure.Items.Count)
                {
                  Bla bla
                }
                else
                {
                  Bla bla
                }
            }           
        }

Men med din metode slipper jeg for at erklære en delegate, så den vil jeg bruge en anden gang.

jeg vil meget gerne donere point for din hjælp.
Sender du et svar?

Buzzzz du må også hellere sende et svar for den hjælp, endnu engang!
Og undskyld den lange ventetid.

Michael

Skrevet ons. d. 01. september 2010 kl. 18:16:26| #11

buzzzz
buzzzz (46.576 point)
ifyoudo.net
Tror du har set forkert ... synes ikke rigtig jeg er kommet med noget til det her spm.

mvh

Skrevet tor. d. 02. september 2010 kl. 10:36:24| #12

koppelgaard
koppelgaard (3.930 point)
Du har da set på spørgsmålet - men okay - det er op til dig :-)

Skrevet tor. d. 02. september 2010 kl. 19:25:02| #13

buzzzz
buzzzz (46.576 point)
ifyoudo.net
Ja, det kan der være noget om ...

Men 20 point er nok ... så meget har jeg jo ikke gjort.

svar.

Skrevet fre. d. 03. september 2010 kl. 11:26:02| #14

koppelgaard
koppelgaard (3.930 point)
Jeg flotter mig og giver dig 60 alligevel :-)
Jeg får nok hjælp en anden gang.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Koordinater for nyt vindue efter scroll, csharp.

Oprettet den 11. februar 2012 kl. 01.54
bjarnefilm giver 30 point for svar | Giv et svar »

Treeview hovedmenu á lá Dynamics C5

Oprettet den 10. februar 2012 kl. 08.12
olehaahr giver 30 point for svar | Giv et svar »

Deployment på Windows Mobile 6.5

Oprettet den 9. februar 2012 kl. 13.59
schristensen giver 200 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger