tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
347
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Fridulin Fridulin ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Beiträge
    309
    Hallo,

    ich habe folgendes Problem. Ich habe eine MainForm im Programm, welche eine andere Form mit Show öffnet. Nun ist allerdings sobald beide Formen offen sind kann ich die MainForm nicht in den Vordergrund schieben, sie geht zwar vor allen anderen Programmen, aber bleibt immer hinter der zweiten Form.
    Es ist auch so wenn die zweite Form aktualisiert wird, soll sie mit this.Activate(); und this.Focus(); dem Benutzer mitteilen, daß diese geändert wurde. Stattdessen sagt das Programm aber die Mainform wurde geändert und blinkt auch unten in der Task leiste. Sobald ich dann auf der Mainform in der Task leiste klicke, öffnet sich stattdessen die zweite Form.

    Weiß einer Rat bzw. woran das liegt und wie man das ändern kann. Ich möchte gerne das die beiden Formen sich unabhängig voneinander verhalten.

    Viele Grüße und ich wünsche noch einen schönen Abend
    Fridulin
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Hi

    Sicher, das du Form.Show() aufrufst?
    Das klingt für mich eher nach Show(IWin32Window) oder ShowDialog().
    Zeig doch mal deinen Code, vielleicht lässt sich dann das Problem lösen.
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    Fridulin Fridulin ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Beiträge
    309
    Hallo,

    vielen Dank für die Antwort.
    Also ich deklariere die Form Global. Da ich mehrmals an der Form von der MainForm etwas hinzufügen muß.
    Code :
    1
    2
    
    // Global
    user_form user_formcha;

    Dann Prüfe ich in ein Hash mit Contain ob sie bereits geöffnet ist und wenn nicht öffne ich Sie, andernfalls füge ich Ihr nur etwas hinzu bzw. Aktualisiere sie.

    Code :
    1
    2
    3
    4
    
    user_formcha = new user_form(this);
    user_formcha.Text = wem;
    meldung  = meldung.Substring(10);
    user_formcha.Show(this);

    Danach Füge ich der Form etwas hinzu und Aktualisiere sie.

    Code :
    1
    2
    3
    
    user_formcha.Nachricht = meldung;
    user_formcha.Wem = wem;
    user_formcha.aktualisieren();

    Viele Grüße
    Fridulin
     

  4. #4
    Fridulin Fridulin ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Beiträge
    309
    Hallo,

    leider bin ich immer noch nicht auf die Lösung gekommen. Wie man sieht aktualisiert die MainForm die zweite Form. Kann es sein das die zweite Form dann automatisch im Vordergrund bleibt?

    Viele Grüße und über jede Hilfe wäre ich sehr Dankbar.
    Fridulin
     

  5. #5
    Avatar von FwDonnerbalken
    FwDonnerbalken FwDonnerbalken ist offline Mitglied Brokat
    Registriert seit
    May 2005
    Beiträge
    323
    Hi,

    wie Nico schon schrieb: Dadurch, dass du Form.Show(IWin32Window) verwendest, bleibt das Form im Vordergrund.

    Verwende entweder ShowDialog() um das Form modal zu öffnen, oder verwende Show() ohne Parameter. Dann wird das neue Formular nicht weiter im Vordergrund dargestellt, wenn du z.B. das MainForm den Fokus erhält.

    Wenn du eine Referenz auf das MainForm im neuen Form benötigt, dann erweitere den Konstruktor und gebe das MainForm mit.
     
    Gruß,
    Sebastian

    Mein XING Profil

    Hilfreiche Antworten bitte bewerten!

  6. #6
    Fridulin Fridulin ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Beiträge
    309
    Hallo,

    vielen Dank für die Antwort.

    Also ist „user_formcha.Show(this)“, das gleiche wie „user_formcha.Show(IWin32Window)“? Das wußte ich nicht. Ich dachte er braucht das wegen „user_formcha = new user_form(this)“ benötigt er das „this“ auch in Show.

    Ich habe es gleich mal getestet und siehe da es Funktioniert. Vielen Dank.

    Viele Grüße und ich wünsche noch einen schönen Tag.
    Fridulin
     

  7. #7
    Avatar von FwDonnerbalken
    FwDonnerbalken FwDonnerbalken ist offline Mitglied Brokat
    Registriert seit
    May 2005
    Beiträge
    323
    Es ist das Gleiche gemeint. Damit hat Nico und dementsprechend ich gezielt auf diese Überladung der Show-Methode aufmerksam machen wollen.
     
    Gruß,
    Sebastian

    Mein XING Profil

    Hilfreiche Antworten bitte bewerten!

  8. #8
    Fridulin Fridulin ist offline Mitglied Brokat
    Registriert seit
    Dec 2004
    Beiträge
    309
    Hallo,

    achso ok, ja jetzt im Nachhinein habe ich das verstanden und es ergibt für mich Sinn. Nur ich bin da zu den Zeitpunkt nicht drauf gekommen, da mir, wie gesagt, nicht klar war das, das gleiche gemeint war.

    Viele Grüße
    Fridulin
     

Ähnliche Themen

  1. Antworten: 27
    Letzter Beitrag: 10.05.11, 00:40
  2. mit form.show im "gleichen Fenster bleiben
    Von mranonymus im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 16.01.08, 18:24
  3. Laufzeitfehler bei Form->Show() / ShowModal()
    Von Supa im Forum Borland CBuilder und VCL
    Antworten: 6
    Letzter Beitrag: 20.09.06, 11:57
  4. Probleme mit Form.hide/show
    Von Cyberfreaker im Forum Delphi, Kylix, Pascal
    Antworten: 0
    Letzter Beitrag: 08.11.04, 20:48
  5. Variablen in einer zweiten Form freigeben
    Von guanidin im Forum .NET Archiv
    Antworten: 4
    Letzter Beitrag: 26.10.04, 15:50