Button blinken lassen

  • VB.NET

Es gibt 34 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Button blinken lassen

    Hallo

    ich hätte mal eine Frage,

    wie kann ich den in einer Form den Button blinken lassen ?

    also ich hätte gern das er blinkt wen im hintergrund eine batch ausgeführt wurde und beendet wird wen ich einen anderen Button drücke,

    ist dies möglich ?


    Danke schonmal für die Antwort
    Hallo,

    ganz ungeschickte Methode:

    Du brauchst:
    1 Timer (Timer1)
    1 Button (ButtonBlink)

    Das Timer-Intervall ist z.B. 1000 (in ms).
    Das Timer-Enabled ist True.

    In das Form_Load schreibst du

    VB.NET-Quellcode

    1. Timer1.Stop()


    und bei dem Timer_Tick Ereignis:

    VB.NET-Quellcode

    1. ButtonBlink.Enabled = True
    2. ' Threading.Threading.Sleep(1000) ' Kannst du reinschreiben, aber deine Form würde einfrieren
    3. ButtonBlink.Enabled = False


    und wenn der Button blinken soll:

    Timer1.Start()

    und beim Ausschalten des Blinkens:

    Timer1.Stop()

    Ich hoffe, ich konnte dir helfen.

    MFG

    Alex-Digital :D
    ~ Alex-Digital :D

    if(!Internet.VBP.Get<User>("Alex-Digital").IsOnline) this.Close(); :D
    @Alex-Digital
    Naja, wenn die From einfriert ist die Sache nicht so gut :), da könnte man Threading benutzen, aber Timer in Verbindung mit Threading, naja.
    Außerdem würde ich es nicht mit der Enabled Property machen, sondern jenachdem wie der Button aussieht auch mit einem Farbeffekt.
    [VB 2010] GDI Controltechniken

    fischer08 schrieb:

    was ihr meint
    Und was meinst Du?
    Dann mach uns Dein Problem bitte mehr verständlich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    fischer08 schrieb:

    ich verstehe nicht so ganz was ihr meint
    ja, ich verstehs auch nicht.
    alex-digitals Vorschlag taugt nix, und Lamies Vorschlag kann ein Anfänger wohl kaum folgen.

    Zieh dir einen Timer aufs Form, setze bei dem Interval 700, und im Button_Klick schaltest du ihn an/aus, mit

    VB.NET-Quellcode

    1. Timer1.Enabled=not Timer1.Enabled

    Solange er enabled ist, feuert er alle 700ms das Tick-Event, und darin musste den Button immer umschalten, etwa mit

    VB.NET-Quellcode

    1. Button.Visible=not Button.Visible
    WARUM wird hier für sowas ein Thread aufgemacht??

    Kennst du die Internet-Seite "Google.de"???

    Wenn du da zB. vb.net blinkender button eingibst, bekommst du Ungefähr 96.800 Ergebnisse (0,34 Sekunden)


    Da darfst du dann Eigeninitiative zeigen und die Links durchgehen!!

    Das erspart uns die Schreibarbeit, wenn die vorgeschlagenen Beispiele auch nicht verstanden werden,
    sorgt dafür, dass das Forum nicht mit bereits vielfach gelösten Problemen belastet wird und
    fördert dein eigenes Wissen und Können mehr, als wenn du einfach alle hier genannten Beispiele via Copy&Paste übernimmst und
    dich dann nur wunderst, dass es nicht klappt...


    ErfinderDesRades - Moderator - Notiz:
    Bitte pampe einen Forum-Neuling nicht gleich in dieser Weise an!
    Mag sein, dass sich auf Google mit Leichtigkeit Lösungen für das Problem finden, aber das kann man auch freundlicher mitteilen.

    @alle anderen: Bitte nicht weiter drauf eingehen, und womöglich einen FlameWar lostreten

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    fischer08 schrieb:

    wen ich ihn mit einem anderen Button bestätige.
    Warum soll ich auf einen 2. Button drücken, wenn der 1. blinkt?
    Soll der blinkende Button auch betäigt werden (können)?
    Wenn ja, was soll passieren, wenn auf den blinkenden Button geklickt wird?
    Wenn er über .Enabled = Not .Enabled oder .Visible = Not .Visible blinkt, nimmt er allerdings zeitweise keine Klicks entgegen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    fischer08 schrieb:

    wen ich ihn mit einem anderen Button bestätige.
    Warum soll ich auf einen 2. Button drücken, wenn der 1. blinkt?
    Soll der blinkende Button auch betäigt werden (können)?
    Wenn ja, was soll passieren, wenn auf den blinkenden Button geklickt wird?
    Wenn er über .Enabled = Not .Enabled oder .Visible = Not .Visible blinkt, nimmt er allerdings zeitweise keine Klicks entgegen.


    nein er soll nicht klickbar sein. sondern einfach nur blinken und über einen anderen Button zurückgesetzt werden
    Auch wenn es dir nicht direkt bei deinem Problem hilft...
    Blinkende Controls auf einer Form sind eher störend.
    Ich würde von so etwas strikt abraten.

    Du solltest dir vielleicht die Frage stellen, was genau du damit bezwecken willst.
    Um einen Fortschritt anzuzeigen oder um zu verdeutlichen dass das Programm gerade etwas ausführt gibt es andere Controls die extra dafür gemacht sind.

    Blinkende Elemente lassen das Programm "hektisch" wirken (weiß nicht ob das das richtige Wort dafür ist, aber hoffe du verstehst was ich ausdrücken möchte).
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    fischer08 schrieb:

    nein er soll nicht klickbar sein.
    Warum soll ein Button blinken, wenn er nicht klickbar sein soll?
    Das Blinken zieht doch die Aufmerksamkeit genau auf diesen Button?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Diese Programm das ich schreibe, ist für die unsere Feuerwehr
    Dieser blinkende Button signalisiert am PC, dass er laufende Einsatz noch aktiv ist.

    Mit dem zweiten Button Einsatz ende, wird eine Relaiskarte die , die haussteuerung bei einem Alarm aktiviert zurückgesetzt und jetzt soll dann auch das blinken aufhören.

    Also bin jetzt soweit, dass der Button blinkt.

    Jetzt muss ich noch zwei Aufgabe bewältigen.

    Die erste wäre , dass der Button erst anfängt zu blinken wen eine Batch ausgeführt wurde , ist dies möglich ?
    Bzw. kann VB auch einen Ordner überwachen und dann den Button blinken lassen, sobald dort eine Datei drin ist ?

    Das zweite wäre, den blinkenden Button wieder auszuschalten, sobald ich auf Einsatz Ende drücke
    Die erste wäre , dass der Button erst anfängt zu blinken wen eine Batch ausgeführt wurde , ist dies möglich ?

    Jap, den Timer mit einer Sub starten.

    Bzw. kann VB auch einen Ordner überwachen und dann den Button blinken lassen, sobald dort eine Datei drin ist ?

    Ka ob der Filesystemwatcher auch Ordner unterstützt. Wenn nicht, nimm nen Timer in dem du per DirectoryInfo.GetFiles checkst, ob neue Dateien hinzugekommen sind.

    Das zweite wäre, den blinkenden Button wieder auszuschalten, sobald ich auf Einsatz Ende drücke

    Das gleiche wie oben
    Mfg
    Vincent

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VincentTB“ ()

    also wenn er nicht klickbar sein soll, dann empehle ich

    VB.NET-Quellcode

    1. .enabled = false


    Dann wird er ausgegraut bzw. leicht in den "Hintergrund" versetzt


    Für das Blinken würde ich eher eine Anpassung der Farbe vorschlagen

    VB.NET-Quellcode

    1. .BackColor = Color.Red


    Das wird dann in einem Timer.Tick immer hin und her geändert und erregt somit auch die Aufmerksamkeit des Users.


    Ob ein blinkender, aber nicht klickbarer Button sinnvoll ist, sei dahingestellt...
    Warum ein Button (wie schon gesagt wurde).
    Ich habe sowas ähnliches für die Wasserrettung geschrieben wo ich Aktiv bin nur das halt Angezeigt wird welches unserer 5 Boote gerade nicht im Hafen liegt sondern irgendwo auf dem Nassen rumschippert.
    Ich habe dafür einfach ein Label genommen und dieses entsprechend reagieren lassen.

    Boot im Hafen --> Label Hintergrund Grün
    Boot auf dem Meer --> Label Hintergrund Rot (oder andere Farbe)

    Ich würde dafür ne neue Klasse schreiben.

    Guck dir mal folgenden Code an:

    VB.NET-Quellcode

    1. Public Class MeinButton
    2. Inhertis Button
    3. Private State As Boolean = False
    4. Private tmr As Timer
    5. Public Sub New()
    6. tmr = New Timer
    7. tmr.Interval = 1000
    8. AddHandler tmr.Tick, AddressOf Tick()
    9. End Sub
    10. Private Sub Tick(Sender As Object, e As EventArgs)
    11. If State Then
    12. Me.BackColor = Color.Blue
    13. Me.State = False
    14. Else
    15. Me.BackColor = Color.Red
    16. Me.State = True
    17. End If
    18. End Sub
    19. Public Sub EinsatzStarten()
    20. tmr.Start()
    21. End Sub
    22. Public Sub EinsatzStoppen()
    23. tmr.Stop
    24. End Class


    Das schreibst du in eine neue Klasse und debuggst einmal. Dann ist in deiner Toolbox ein neues Element, MeinButton. Den auf die Form ziehen und dann einfach mit MeinButton1.Einsatzstarten() das blinken anschalten. Nicht C & Pn, das hab ich gerade ausm Kopf geschrieben.
    Mfg
    Vincent

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VincentTB“ ()