Laden...

Label MouseMove neues Fenster

Erstellt von Akula vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.503 Views
A
Akula Themenstarter:in
89 Beiträge seit 2007
vor 14 Jahren
Label MouseMove neues Fenster

Hallo, ich habe folgendes Problem: Ich möchte, wenn der Benutzer über ein Steuerelement, nehmen wir mal ein Label, dass sich eine Form öffnet die noch mehr Informationen enthält. Zur Zeit habe ich folgenden Code:


Form2 frm2 = null;

        private void label1_MouseLeave(object sender, EventArgs e)
        {
            if (frm2 != null)
            {
                frm2.Close();
                frm2 = null;
            }
        }

        private void label1_MouseMove(object sender, MouseEventArgs e)
        {
            if (frm2 != null)
            {
                frm2.Top = MousePosition.Y;
                frm2.Left = MousePosition.X;
            }
        }

        private void label1_MouseEnter(object sender, EventArgs e)
        {
            if (frm2 == null)
            {
                frm2 = new Form2();
                frm2.FormBorderStyle = FormBorderStyle.None;
                frm2.Top = MousePosition.Y;
                frm2.Left = MousePosition.X;
                frm2.Show();
            }
            else
            {
                frm2.Top = MousePosition.X;
                frm2.Left = MousePosition.Y;
            }
        }

Nun zum Problem: Zur Zeit geht dieser Code nur mit FormBorderStyle.Sizable, ich möchte aber gerne FormBorderStyle.None. Und dort ist das Problem, dass die Form nicht angezeigt wird und die Hauptform flackert.

Könnt ihr mir dabei bitte einmal helfen???

Danke

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo Akula,

mich wundert, dass er überhaupt geht.

Du erzeugst an der Mausposition ein Fenster, wodurch sich die Maus anschließend über dem neuen Fenster befindet, wodurch im alten Fenster eine MouseLeave ausgelöst werden müsste, das das neue Fenster gleich wieder schließt schließt, was zu einem MouseEnter führt, das wieder ein neues Fenster erzeugt und so weiter ...

herbivore

A
Akula Themenstarter:in
89 Beiträge seit 2007
vor 14 Jahren

Stimmt auch wieder, gibt es denn irgendwelche Tipps oder Beispiel, die mir das Problem mal verdeutlichen?

916 Beiträge seit 2008
vor 14 Jahren

Das Problem hat herbovire doch genau Beschrieben. Koppel doch mal das MouseLeave Event ab, dann wirst du sehen das deine Form aufgeht.

Wenn du es dennoch so haben möchtest das bei Verlassen des Labels die Form nicht mehr angeziegt wird, musst du das Fenster an einer anderen Mouse Position initialisieren. Schau dir auch mal Hide() an der Form an, möglichweise ist das in deinem Fall besser geeignet, da du die Form immer wieder neu erstellst, und schließt und neu erstellst und ....

Again what learned...

L
667 Beiträge seit 2004
vor 14 Jahren

Mach doch das Fenster erst wieder zu, wenn die Maus das angezeigte Form verlässt und nicht wenn die Mouse das Label verlässt. Wenn ich jetzt nicht ganz daneben liege ist das auch das Standard-Verhalten bei "Popups". Würde also bedeutetn, das MouseLeave Event des Forms zu füllen statt das Event des Labels.

"It is not wise to be wise" - Sun Tzu

2.760 Beiträge seit 2006
vor 14 Jahren

Nur um ganz sicherzugehen (nicht schlagen):
Du sucht aber kein ToolTip?

A
Akula Themenstarter:in
89 Beiträge seit 2007
vor 14 Jahren

Hallo,

nein ich suche kein Tooltipp, sonder einfach nur das bei der Brührung des Labels eineine neue Form geöffnet wird, in der mehr Informationen stehen. Bei verlassen des Labels soll dies wieder geschlossen werden.

Gruß Akula

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo Akula,

sonder einfach nur das bei der Brührung des Labels [...] mehr Informationen stehen.

wobei das doch genau der Zweck von ToolTips ist.

herbivore

T
415 Beiträge seit 2007
vor 14 Jahren
A
Akula Themenstarter:in
89 Beiträge seit 2007
vor 14 Jahren

Ich meine, dass man zum Beispiel bei verschiedenen Autotypen eine Übersicht hat und wenn man dort auf einen Typ mit der Maus drüber fährt, sich ein neues Fenster öffnet und dort stehen dann eben noch mehr Informationen.

Gruß Akula

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo Akula,

ok, wobei das Problem ist doch jetzt erkannt und offensichtlich ist, wie man es vermeiden kann, oder?

herbivore

A
Akula Themenstarter:in
89 Beiträge seit 2007
vor 14 Jahren

Habe mich noch einmal genauer mitbeschätigt und ich denke ds ist eher ein Pop-up was ich haben möchte. Nun frage ich mich, wie ich das wieder ausblenden kann, wenn der Benutzer das Steuerelment verlässt.

Gruß Akula

916 Beiträge seit 2008
vor 14 Jahren

Sag mal hast du überhaupt die posts von den anderen hier gelesen?

Again what learned...

A
Akula Themenstarter:in
89 Beiträge seit 2007
vor 14 Jahren

Habe ich, aber ich glaube eher wird reden bzw schreiben gerade aneinander vorbei.