Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Broadcasting internt i programmet

Postades av 2009-11-10 13:33:03 - Magnus Karlsson, i forum vb.net, Tråden har 23 Kommentarer och lästs av 1535 personer


Fångar upp en händelse och bearbetar denna. Vill skicka en flagga till vissa delar i programmet samtidigt.

Nu är det ända jag kan komma på är att varje programdel har en timer som läser av värdet i en låda som ligger i en modul.

Frågan är om det finns något snyggare sätt?


Svara

Sv: Broadcasting internt i programmet

Postades av 2009-11-10 14:59:40 - Oskar Johansson

Ett event


Svara

Sv:Broadcasting internt i programmet

Postades av 2009-11-10 22:06:58 - Magnus Karlsson

Jag har två Forms eller kanske tre .... som jag från class vill starta en händelse i vardera form. Hur gör man?


Svara

Sv: Broadcasting internt i programmet

Postades av 2009-11-10 22:45:11 - Oskar Johansson

Du deklarerar ett event som formsen sedan får haka upp sig på. Precis som vilket event som helst.

(Events är bara en "multicastdelegate", dvs. alltifrån noll (null) till "oändligt" antal delegates. När man triggar ett event så anropas alla delegates i tur och ordning.)

Pseudokod:

Classen:

public event EventHandler MittEvent;

private void OnMittEvent()
{
if(this.MittEvent!=null)
this.MittEvent(this, EventArgs.Empty);
}

forms:

Classen classen = this.GetMyClassen(); //hur du nu får tag på en instans av den där klassen
classen.MittEvent += new EventHandler(this.MinEventHandlerFörMittEvent);

private void MinEventHandlerFörMittEvent(object sender, EventArgs e)
{
MessageBox.Show("Anropad");
}


Svara

Sv:Broadcasting internt i programmet

Postades av 2009-11-11 08:20:37 - Magnus Karlsson

Ursäkta min tröghet...

Classen
<code>
Public Event MittEvent As EventHandler

Private Sub OnMittEvent()
RaiseEvent MittEvent(Me, EventArgs.Empty)
End Sub
</code>



Form1
<code>
Dim classen As Classen = Me.GetMyClassen()
AddHandler classen.MittEvent, AddressOf Me.MinEventHandlerFörMittEvent

Private Sub MinEventHandlerFörMittEvent(ByVal sender As Object, ByVal e As EventArgs)
MessageBox.Show("Anropad 1")
End Sub
</code>

Form2
<code>
Dim classen As Classen = Me.GetMyClassen()
AddHandler classen.MittEvent, AddressOf Me.MinEventHandlerFörMittEvent

Private Sub MinEventHandlerFörMittEvent(ByVal sender As Object, ByVal e As EventArgs)
MessageBox.Show("Anropad 2")
End Sub
</code>

Vad är "Dim classen As Classen = Me.GetMyClassen()" ?


Svara

Sv: Broadcasting internt i programmet

Postades av 2009-11-11 09:22:11 - Oskar Johansson

En påhittad funktion som du måste ersätta med någonting :) på något sätt måste dina forms få en referens till din instans av din klass, och det måste vara samma instans. Ett sätt att lösa det på är att du i skapar en funktion på varje form som tar emot en variabel av den typ din klass är


Svara

Sv:Broadcasting internt i programmet

Postades av 2009-11-12 11:06:18 - Magnus Karlsson

Om jag vill "RaiseEvent" från en modul?


Svara

Sv: Broadcasting internt i programmet

Postades av 2009-11-12 13:44:04 - Oskar Johansson

Hm? Anropa bara OnX-metoden


Svara

Sv:Broadcasting internt i programmet

Postades av 2009-11-12 14:17:06 - Magnus Karlsson

Googlade lite på "onx" ... lesbians on extasy ...

Tyvärr totalt off.


Svara

Sv: Broadcasting internt i programmet

Postades av 2009-11-12 23:34:34 - Oskar Johansson

Alltså, den OnMittEvent som du deklarerade, anropa den så "körs" eventet


Svara

Sv: Broadcasting internt i programmet

Postades av 2009-11-12 23:35:41 - Oskar Johansson

Alltså, anropa bara den OnMittEvent som du deklarerade förut


Svara

Sv:Broadcasting internt i programmet

Postades av 2009-11-13 08:43:17 - Magnus Karlsson

För bekymmer men "Me" i "RaiseEvent MittEvent(Me, EventArgs.Empty)" från em modul

<code>
Module Module1

Public Event MittEvent As EventHandler

Private Sub OnMittEvent()

RaiseEvent MittEvent(Me, EventArgs.Empty)
End Sub

End Module
</code>


Svara

Sv: Broadcasting internt i programmet

Postades av 2009-11-13 11:31:27 - Oskar Johansson

Hm, moduler är statiska klasser så då finns det ingen instans, och då inget me. Kör med nothing istället


Svara

Sv:Broadcasting internt i programmet

Postades av 2009-11-13 12:15:12 - Magnus Karlsson

nu så. det funkar fint. Jag tackar för fin support och bra tålamod! trevlig helg!


Svara

Sv: Broadcasting internt i programmet

Postades av 2009-11-13 12:46:35 - Magnus Karlsson

Men ....

<code>
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Form2.Show()
Form3.Show()

End Sub


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
OnMittEvent()
End Sub

End Class
</code>

<code>
Public Class Form2

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler MittEvent, AddressOf Me.MinEventHandlerFörMittEvent
End Sub

Private Sub MinEventHandlerFörMittEvent(ByVal sender As Object, ByVal e As EventArgs)
MessageBox.Show("Anropad 2")
End Sub

End Class
</code>

<code>
Public Class Form3

Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler MittEvent, AddressOf Me.MinEventHandlerFörMittEvent
Form2.Show()
OnMittEvent()
End Sub

Private Sub MinEventHandlerFörMittEvent(ByVal sender As Object, ByVal e As EventArgs)
MessageBox.Show("Anropad 3")
End Sub

End Class
</code>


<code>
Module Module1

Public Event MittEvent As EventHandler

Public Sub OnMittEvent()
RaiseEvent MittEvent(Nothing, EventArgs.Empty)
End Sub

End Module
</code>

När programmet startar avfyras alla MessageBox ... Som Sverker säger ... Ska det vara så? (jag vill inte de)


Svara

Sv:Broadcasting internt i programmet

Postades av 2009-11-13 14:30:50 - Oskar Johansson

Mjo, du du kör eventet i en av form_load så är det förväntat beteende


Svara

Sv: Broadcasting internt i programmet

Postades av 2009-11-14 11:08:20 - Magnus Karlsson

Jag såg det. Ursäkta min blunder.


Svara

Sv:Broadcasting internt i programmet

Postades av 2009-11-14 21:49:24 - Oskar Johansson

Gött :) trevlig fortsatt helg :)


Svara

Sv: Broadcasting internt i programmet

Postades av 2009-11-15 06:12:32 - Magnus Karlsson


Om jag nu kör många labels och textboxar i "MinEventHandlerFörMittEvent" så blir det något felmeddelande om att man inte kan köra i samma tråd ... Att fixa till det för en label känner jag till. Men hur gör man när man har många?

<code>
Private Sub MinEventHandlerFörMittEvent(ByVal sender As Object, ByVal e As EventArgs)
label1.text = "bla"
label2.text = "bla"
label3.text = "bla"
osv......
End Sub
</code>


Svara

Sv:Broadcasting internt i programmet

Postades av 2009-11-15 09:26:58 - Oskar Johansson

Du måste använda invoke eller begininvoke så det körs från rätt tråd


Svara

Sv: Broadcasting internt i programmet

Postades av 2009-11-15 10:56:08 - Magnus Karlsson


Vet inte riktigt hur jag skall göra med "Invoke"...


Svara

Sv:Broadcasting internt i programmet

Postades av 2009-11-15 19:42:05 - Oskar Johansson

Om inte någon annan svarat innan dess så påminn mig imorgon kväll, lite svårt att skriva kod på mobilen :p


Svara

Sv: Broadcasting internt i programmet

Postades av 2009-11-16 20:47:12 - Magnus Karlsson

Kom på hur man gör.


Svara

Sv:Broadcasting internt i programmet

Postades av 2009-11-16 22:08:36 - Oskar Johansson

Fint :)


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 608
27 958
271 741
661
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies