vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
TreeView und Focus 
Autor: Waver
Datum: 28.08.10 17:52

Hallo. Ich habe Probleme mit dem Fokusieren.

    Private Sub trv_NodeMouseClick(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles _
      trv.NodeMouseClick
        Dim objFRM As New frmTest
        objFRM.MdiParent = Me
        objFRM.Show()
        objFRM.Focus()
    End Sub
Ich möchte nach dem Klicken auf den Node ein neues Form in meinem MDI erzeugen und gleich den Fokus darauf setzen. Leider funktioniert das Fokusieren nicht. Das Form wird jedoch erwartungsgemäss erzeugt. Wie krieg ich das hin?

Beitrag wurde zuletzt am 28.08.10 um 18:02:33 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView und Focus 
Autor: Waver
Datum: 03.09.10 09:27

Kann mir niemand weiterhelfen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView und Focus 
Autor: ModeratorDaveS (Moderator)
Datum: 03.09.10 09:44

Mit einer ChildForm mit TreeView gibt es kein Problem, auch ohne .Focus(). Bei Forms verwendet man übrigens .Activate(). Machst du etwas komisches als "Mdi" Anwendung?

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView und Focus 
Autor: Waver
Datum: 03.09.10 10:04

Ich mach immer komisches

Ich habe im MDI Fenster auf der Seite ein angedocktes Panel mit einem Treeview darauf. Jeder TreeNode öffnet beim Anklicken jeweils ein ChildFenster. Nur funktioniert das anschliessende Fokusieren nicht (auch nicht mit .Activate(). Allerdings, wenn ich auf dem Panel ein Button zum Öffnen der ChildForms verwenden, funktioniert das mit .Focus().

Irgendwas muss beim TreeView anders sein. Ich benutze das Ereignis AfterSelect. Habe es auch mit NodeMouseClick versucht.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView und Focus 
Autor: ModeratorDaveS (Moderator)
Datum: 03.09.10 10:32

Anhang:  AnhangmdiTreeViewNodeClicks.PNG (112k)  

Naja, Mdi ist dafür gedacht Mdi-Anwendungen zu schreiben. Verwende besser dafür einen Splitter und Panels. Aber auch damit habe ich kein Problem, auch ohne .Focus(), .Activate() oder sonst was. So siehts bei mir aus nach dem dritten Node-Klick.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView und Focus 
Autor: Waver
Datum: 03.09.10 10:56

DaveS schrieb:
Zitat:

Naja, Mdi ist dafür gedacht Mdi-Anwendungen zu schreiben.
Verwende besser dafür einen Splitter und Panels.


Ich schreibe eine MDI-Anwendung! Weiss nicht was du damit meinst.


DaveS schrieb:
Zitat:

Aber auch damit habe ich kein Problem, auch ohne .Focus(), .Activate() oder sonst was.


Das täuscht. Der Fokus liegt nicht wirklich auf der Form, auch wenn das so aussieht. Ich habe auf meinen Forms eine Schliessen-Button. Dieser ist als Cancel-Button auf der jeweiligen Form definiert. Wenn ich also ein TreeNode anklicke, müsste das Form angezeigt werden und mit ESC gleich wieder geschlossen werden können.

Funktioniert das bei dir?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView und Focus 
Autor: ModeratorDaveS (Moderator)
Datum: 03.09.10 12:05

Ja, ich sehe was du meinst. TreeView holt sich den Fokus wieder. Siehst du was ich meine? Gedockte Panels in der Hauptform sind nicht Mdi. Das klappt nicht, ich würde sagen, weil eine Mdi-Form nicht so programmiert ist unter solchen Bedingungen richtig zu funktionieren. Du kannst aber im tv.GotDocus() den Fokus neu setzen (ist nicht wirklich empfohlen).

    Private objFRM As Form3
 
    Private Sub TreeView1_GotFocus(ByVal sender As Object, ByVal e As _
      System.EventArgs) Handles TreeView1.GotFocus
        If objFRM IsNot Nothing Then
            objFRM.Button1.Focus()
            objFRM = Nothing
        End If
    End Sub
 
    Private Sub TreeView1_NodeMouseClick(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles _
      TreeView1.NodeMouseClick
        objFRM = New Form3
        objFRM.MdiParent = Me
        objFRM.Show()
    End Sub

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView und Focus 
Autor: Waver
Datum: 03.09.10 13:16

Ich arbeite schon lange mit MDI und dem gedockten Panel. Bisher hatte ich als Menüpunkte einfach Buttons. Und damit hatte ich wirklich nie Schwierigkeiten. Erst der Wechsel zum TreeView als Menüstruktur brachte das Problem. Ich glaube deshalb, dass es am TreeView liegen muss und nicht am Panel als Grundlage.

Aber du sagst, dass MDI Anwendungen nicht so programmiert werden sollen. Was schlägst du denn als Alternative für das Menü-Panel vor? Bedingung ist, sie muss auf der Seite platziert sein und die MDI Childs drüfen sie nicht überdecken können. TreeView-Style ist ebenfalls gewünscht.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView und Focus 
Autor: ModeratorDaveS (Moderator)
Datum: 03.09.10 13:18

Und wie klappts mit meiner Lösung?

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView und Focus 
Autor: Waver
Datum: 03.09.10 13:36

Ändert nichts. Nach wie vor kein Fokusieren möglich.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView und Focus 
Autor: ModeratorDaveS (Moderator)
Datum: 03.09.10 13:44

Das ist seltsam, weil es völlig richtig funktioniert bei mir. TreeView Node wird nicht mehr gehilited und meine Defaulttaste funktioniert. Du musst Fokus auf ein Control setzen, nicht die Form.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView und Focus 
Autor: Waver
Datum: 03.09.10 13:52

Ich hatte Fokus auf Form gesetzt statt auf ein Control. Aber wenn ich das so lösen muss, ist es für mich nicht brauchbar. Ich habe ca 30 Menüpunkte welche jeweils ein anderes Form aufrufen. Nicht auf jedem befindet sich dieser Schliessen-Butten.

Gibt es keine andere Lösung? Wie gesagt, wenn ich statt eine TreeView Buttons verwende ist das Fokusieren kein Problem. Aber eine Menüstruktur mit 30 Menüpunkten mit Buttons zu erstellen, das möchte ich lieber nicht.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView und Focus 
Autor: ModeratorDaveS (Moderator)
Datum: 03.09.10 15:02

Sorry, weitere Vorschläge habe ich nicht. Ich habe schon ziemlich alle TV Events ausprobiert. Du wahrscheinlich auch.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: TreeView und Focus 
Autor: Waver
Datum: 03.09.10 15:57

Werde es vermutlich so lösen wie du vorgeschlagen hast. Einfach statt ein bestimmtes Control zu fokusieren nehme ich das Control(0):

 Private Sub TreeView1_GotFocus(ByVal sender As Object, ByVal e As _
      System.EventArgs) Handles TreeView1.GotFocus
        If objFRM IsNot Nothing Then
            objFRM.Controls(0).Focus()
            objFRM = Nothing
        End If
    End Sub
Vielen Dank für deine Hilfe.

Waver
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel