Ergebnis 1 bis 15 von 15

Thema: Frage zu Visual Basic

  1. #1
    Registriert seit
    30.07.2007
    Beiträge
    800

    Frage zu Visual Basic

    Servus,

    da ich an ner Handyalarmierung Bastel habe ich mich kurzerhand entschlossen das ganze einfach mit Visual Basic statt wie viele andere mit Batches zu Realisieren. Tzjoa da ich hier auch keine Ahnung habe ist es klar das man hin und wieder auf Probleme stößt. Soweit so gut nur dadurch lernt man... aber ich habe nu eins das ich ned verstehe bzw. ned weiß was ich genau im Code eingeben muss... vielleicht kann mir ja einer von euch weiterhelfen.

    Private Sub LoginStatus_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoginStatus.Enter
    If Hauptschirm.Visible Then
    LoginStatus.BackColor = Color.Green
    Else
    LoginStatus.BackColor = Color.Red
    End If
    End Sub

    Das ist der auszug aus dem Code...

    in Form1 ist nen Feld (LoginStatus) das sobald form2 (Hauptschirm) vorhanden ist halt grün werden soll, und wenn nicht halt Rot sein soll...

    Wenn ich das nun so ausführe Funktioniert das auch wunderbar... aber ich muss dazu in Form 1 immer auf das Feld klicken das sich die Farbe also der anzeigende status ändert.
    Was muss ich eingeben damit das ganze Automatisch von statten geht?!?

    für Interessierte leute... es geht um die Geschichte mit dem "MyPhoneExplorer" allerdings mit Anrufen statt SMS... so denn...

    Danke schonmal (wenn denn jemand helfen kann oder wird)

  2. #2
    Registriert seit
    18.12.2004
    Beiträge
    488
    wenn du form2 öffnest, dann
    würde ich die Farbe des Feldes ändern.

    wenn du form2 wieder schließt, dann würde ich die Farbe zurück ändern.

    MfG
    ... live for nothing or die for something ...
    ... choose your destiny ...

  3. #3
    Registriert seit
    30.07.2007
    Beiträge
    800
    was soll mir das nu sagen?

    ich will ja wissen was an dem code ned stimmt... weil genau das macht die farbe nunmal nicht... erst wenn ich dann das feld anklicke.... das soll es aber Ohne anklicken machen....

  4. #4
    Registriert seit
    08.06.2008
    Beiträge
    151
    Ich glaube so wie du das zur Zeit hast geht es nur wenn du in das Feld klickst, weil dein Code erst ausgeführt wird, wenn du das Feld anklickst:
    "Private Sub LoginStatus_Enter"
    Ist aber auch nur so ne Vermutung, hab schon lange nichts mehr mit Visual Basic gemacht.

    Ist deine Form2 offen bevor die Form1 geöffnet wird?
    Wenn ja musst du dein Code beim Laden der Form ausführen, wenn nicht musst du beim öffnen der Form2 die Farbe ändern.

    Ich weiss nichts obs verständlich war ;) aber vielleicht hilfts ja

    Gruß Maddin

  5. #5
    Registriert seit
    18.12.2004
    Beiträge
    488
    naja,
    der Code an sich ist richtig.
    Er sagt: nur wenn LoginStatus_Enter ausgeführt wird, wird der code ausgeführt.
    Wann wird LoginStatus_Enter ausgeführt?
    Wenn du drauf klickst.

    Das ist das Problem.

    Du mußt es so machen, das es nicht beim klick ausgeführt sondern wenn du
    form2 anzeigst / ausblendest oder irgendeine andere Bedingung.

    ups, da war einer schneller beim Schreiben

    MfG
    Geändert von coastboy (22.05.2009 um 11:27 Uhr)
    ... live for nothing or die for something ...
    ... choose your destiny ...

  6. #6
    Registriert seit
    30.07.2007
    Beiträge
    800
    Hy,

    Das es so nicht geht hab ich selber auch schon gemerkt *fg*... ich will ja nur wissen was ich machen muss damit es halt von alleine geht.

    Form1 ist natürlich vor form 2 geöffnet.
    vorm 1 öffnet via Button form 2.
    ist diese geöffnet soll sich ein feld in vorm 1 grün färben, ist se geschlossen soll es rot sein.

    funktioniert im prinziep ja auch... nur das ich es halt anklicken muss, was den sinn allerdings komplett verfehlt.

    PS: und bevor wer auf die idee kommt... nein ich kann die farbänderung nicht über den click auf den Button schreiben. es muss über die Form2.visible laufen (oder halt vergleichbar).

    Ich vermute mal das ich im Code einfach nur das "enter" gegen iwas anderes tauschen müsste.... aber ich find halt nichts was mich weiter bringt... hänge halt nun an dem Punkt und komme mit dem Programmieren ned weiter... da ich noch etliche andere statusanzeigen habe die mit dem gleichen Prinziep arbeiten.

    also weiß wer was ich ändern muss!?!? Wäre echt wichtig....

  7. #7
    Registriert seit
    18.12.2004
    Beiträge
    488
    Man könnte es über einen Timer realisieren, aber ob das so dolle ist...

    Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Form2.Show()
    End Sub
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If Form2.Visible Then
    Label1.BackColor = Color.Green
    Else
    Label1.BackColor = Color.Red
    End If
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Timer1.Interval = 100
    Timer1.Enabled = True
    End Sub
    End Class

    Public Class Form2
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Me.Hide()
    End Sub
    End Class

    MfG
    ... live for nothing or die for something ...
    ... choose your destiny ...

  8. #8
    Registriert seit
    08.06.2008
    Beiträge
    151
    Also mit dem Code bin ich leider nicht mehr so fit aber wie sieht es mit folgender Idee aus:
    Entweder du machst beim Öffnen "Form2.Load" und beim Schließen "Form2.Close" (oder Hide, keine Ahnung ;) ) das entsprechende Textfeld farbig. Solltest doch normal auch von Form2 auf Textfelder aus Form1 zugreifen können.

    Oder du setzt beim öffnen und beim schließen eine globale Variable auf 1 bzw 0 und fragst in Form 1 ständig die Variable ab. Oder bei Form1.getFocus die Variable abfragen. (geht halt nur wenn deine Form1 im Hintergrund läuft und du die immer erst anklicken musst)

  9. #9
    Registriert seit
    30.07.2007
    Beiträge
    800
    Hoi,

    Form 1 ist im Prinziep das Loginfeld sprich Benutzername und kennwort werden dort eingegeben, darauf sind 3 Statusanzeigen die halt je nachdem Grün oder Rot sein sollen. Sprich den Status bestimmter dinge wiedergeben.

    sobald ich ne Lösung hätte wie das halt geht das mir Automatisch die farbe gewechselt wird wenn Form2 dann da ist, wären auch alle anderen Probleme mit weiteren Statusfenstern erledigt.

    Das gleiche funktioniert selbst innerhalb einer Form nur wenn ich auf das feld klicke.
    Es muss doch irgend eine möglichkeit geben.... gut hab halt auch gestern erst angefangen mit programmieren. Aber k.p. das des einzige prob wo ich im netz bisher auch nix zu gefunden habe.

    Im Anhang mal Zwei Bilder...

    Erstes ist von den Login Feldern...

    Oben: so sieht es aus wenn das programm gestartet ist (Background vom feld hat Orange als normale Hintergrundfarbe (zur einfacheren kontrolle obs nun klappt oder ned) wenns klappt sollte er ja automatisch rot sein.

    Das bild darunter habe ich das Feld "Programm Status" Einmal angeklickt, da Form2 noch nicht vorhanden ist wirds halt Rot. Aber halt nur durch anklicken NICHT von alleine.
    gleiches Spiel bei den Punkten neben Benutzername und Passwort.
    (habe ich nur mal so zum Testen drin). diese werden in der theorie halt wenns richtige Passwort/Benutzername drin ist Grün, und wenn ned Rot... aber auch nur wenn ich einmal draufklicke :o/

    Unten habe ich dann mal alles eingegeben und Form 2 Gestartet (und alles angeklickt)


    Bild 2 ist halt Form 2 (aber noch lange ned vollständig).


    gut... nehmt es mir bitte ned übel... aber wenn ihr mir ratschläge gebt... schreibt dochn kurzes Code Beispiel... wie gesagt ich mach das erst seit gestern somit absoluter NewBie.
    Da bringen mir manche aussagen somit nicht mehr als viele viele >>>?????<<< ;o)

    Edit: in Form 2 ist alles Orange weil ich dort noch garkeinen Code drin habe, bringt ja nichts bisher ;o)
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Login.JPG 
Hits:	143 
Größe:	38,3 KB 
ID:	10123   Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Handy-Alarm.JPG 
Hits:	140 
Größe:	38,9 KB 
ID:	10124  

  10. #10
    Registriert seit
    30.07.2007
    Beiträge
    800
    Zitat Zitat von coastboy Beitrag anzeigen
    Man könnte es über einen Timer realisieren, aber ob das so dolle ist...

    Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Form2.Show()
    End Sub
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If Form2.Visible Then
    Label1.BackColor = Color.Green
    Else
    Label1.BackColor = Color.Red
    End If
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Timer1.Interval = 100
    Timer1.Enabled = True
    End Sub
    End Class

    Public Class Form2
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Me.Hide()
    End Sub
    End Class

    MfG

    So habs nu mal so Probiert.... an sich klappt das ganze auch AAAAAAAAABER!!! erst nachdem ich einmal drauf geklickt habe *g*

    Sprich einmal Form2 öffnen... drauf klicken, feld wird grün... danach kann ichs zu und auf machen... denne gehts autoamtsich... ne idee woran das nu noch liegen könnte?

  11. #11
    Registriert seit
    16.03.2002
    Beiträge
    110
    Hallo,

    ein Fenster anklicken bedeutet ja, es zu aktivieren (ist ein Unterschied zu nur sichtbar).
    Aktiviere es in deinem Code: form.activate, dann brauchst Du es nicht anklicken.

    Gruß Ralf

  12. #12
    Registriert seit
    30.07.2007
    Beiträge
    800
    Hy,

    erstmal danke für den hinweis.. könntest du mir hier evtl. kleinen beispielcode geben? Weiß ned genau wie ich das einbringen soll.

  13. #13
    Registriert seit
    16.03.2002
    Beiträge
    110
    Hallo,

    mit Beispielcode kann ich nicht dienen, habe kein VB mehr auf dem Rechner. Aber stelle Dein Problem doch mal in der Newsgroup microsoft.public.de.vb vor, da sind viele Fachleute unterwegs und es wird eigentlich immer schnell und freundlich geholfen.

    Gruß Ralf

  14. #14
    Registriert seit
    18.12.2004
    Beiträge
    488
    also, wenn ich meinen geposteten code ausführe, dann ändert sich die Farbe sofort,
    wenn form2 sichtbar ist.
    Ich muss da nichts anklicken.

    Was hast du anders gemacht, bzw. welche vb Version nutzt du?


    MfG
    coastboy
    ... live for nothing or die for something ...
    ... choose your destiny ...

  15. #15
    Registriert seit
    30.07.2007
    Beiträge
    800
    Hy,

    Ich nutze Visual Basic 2008 Express Edition.

    hmm, das natürlich komisch das es bei dir klappt... wie gesagt nach einmaligem anklicken funzt es bei mir auch einwandfrei, aber ist halt ein klick zu viel ;o)

    Hab mittlerweile auch viel gegoogelt, leider find ich kein Tutorial zu genau meinem thema. Somit kann ich nur immer rätselraten spielen hier.

    Naja, war mir klar das Programmieren lernen ned einfach ist... aber nur so lernt mans halt ne ;o)
    Problem ist halt das mehr oder weniger nun die weitere entwicklung von dieser kleinigkeit abhängt :o/.

    Wenn einer von euch lust hat kann er mir via PN ja mal seine E-Mail adresse zuschicken, dann packe ich den kram mal in ne Zip oder Rar und schicke sie.
    Ist vielleicht einfacher für euch dann zu sagen hier liegt der fehler. Vorweg... bitte ned über den Code lachen... wie gesagt... meine ersten schritte ;o)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •