Kliknutí myší na TreeView node   otázka

VB6/VBA

Ahoj potřebuju poradit v treeview mám popup menu potřebuju když jsem neklik na node a kliknu pravym tlacitkem aby mi nejdrive kliklo leve a az pak prave tlacitko mysi.

Dá se nejak ve VB6 vyvolat událost kliknutí levým tlačítkem ?

Díky

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Na TreeView kliknutí myší mimo node vyvolá události

- MouseDown

- MouseUp

- Click

ať bylo kliknuto levým nebo pravým tlačítkem! Kterým bylo kliknuto lze zjistit v MouseDown a v MouseUp podle hodnoty parametru Button a v proceduře vykonat žádané...

Private Sub TreeView1_MouseUp(Button As Integer, _
      Shift As Integer, x As Single, y As Single)
  If Button = 1 Then
    ' demonstrace s MsgBox:
    MsgBox "Button = " & Button & _
       " - kliknuto mimo node levým tl. myši..."
  Else
    ' demonstrace s MsgBox:
    MsgBox "Button = " & Button & _
       " - kliknuto mimo node PRAVÝM tl. myši..."
     ' vložte potřebný kód...
  End If
End Sub

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

To ano v tomto máte pravdu ,ale asi jsem špatně popsal problém.

Nepotřebuju aby VB reagoval na moje kliknutí já potřebuju aby "jakoby klikl na místě kde je kurzor aniž bych stiskl tlačítko myši."

Popísu problem:

Mám v treeviev položku node a pravym kliknutím vyvolam vyskakovací menu. Ale já potřebuji mít node oznaceno. Pravym klikem prave neoznacim node jen vyvolam menu. Já práve potrebuju aby vb nejdrive klikl tam kde je kurzor a az pak vyvolal menu.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Použijte HitTest ke zjištění Node pod kurzorem,

potom ho nastavte jako vybrané a zobrazte menu.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Nepotřebuju aby VB reagoval na moje kliknutí já potřebuju aby "jakoby klikl na místě kde je kurzor aniž bych stiskl tlačítko myši."

Jak se kurzor na položku dostane? Pokud jen pohybem myši, pak je to událost "TreeView1_MouseMove"

Kdyby šipkami, položky se automaticky vybírají a vybírají se kliknutím myši...

Mám v treeviev položku node a pravym kliknutím vyvolam vyskakovací menu. Ale já potřebuji mít node oznaceno. Pravym klikem prave neoznacim node jen vyvolam menu

Kliknutím na položku (node) TreeView se tato vybere jak levým, tak pravým tl. myši. Nevím detailně, co po kliknutí váš kód provádí, a nevím proto, proč by se položka neměla označit.

Kódem se dá položka označit takto:

  Me.TreeView1.Nodes(1).Selected = True
  ' číslo v závorce je číslo node

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Vyřešeno díky všem :)

   On Error Resume Next
     index_node = TreeView1.HitTest(X, Y).Index
     TreeView1.Nodes(index_node).Selected = True

Zajimave je ze pokud mate v treeview rucne zadane node tak oznaci i prave tlacitko mysi ale pokud generovane node tak to nejde a musi se pouzit kod.

Díkes

nahlásit spamnahlásit spam 3 / 3 odpovědětodpovědět

Není to pravda. Zkusil jsem kódem vygenerované položky: označí se kliknutím jak levým, tak pravým tlačítkem myši. Rozdíl tu je: levým je nutné klepnout do textu, pro pravé tl. funguje celý řádek. Nastavení vlastností TreeView jsem nestudoval, jen informuji o výsledku svého pokusu.

Více tím nebudu zabývat. Zkoumat VB6 je dnes již ztracený čas.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Hádat se tu nebudeme zkusil jsem to ciste na treeview v novem projektu a tam mi to na dvou nodách fungovalo taky ale v tom programu to porste nejde.

Premyslel jsem jestli za to nemuze treba nizsi verze komponenty.

Nicmene problem vyresen(viz nahore) rád bych se k nemu jiz nevracel.

Vsem jeste jednou dekuji :)

nahlásit spamnahlásit spam 3 / 3 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback