WinForms - TreeViev, osobny event dla kliknięcia na Node i dla tła kontrolki

WinForms - TreeViev, osobny event dla kliknięcia na Node i dla tła kontrolki
0

Witam, próbuje i próbuję ale wciąż nie potrafię tego rozwiązać.

Mam formę i na nią wrzucony TreeView zdockowany więc jest na całej formie i teraz chce sprawdzić czy kliknięcie myszki nastąpiło na jakimś root nodzie czy też na reszcie wolnego miejsca TreeView czyli po prostu na tle i nie potrafię tego odseparować.

Próbowałem najróżniejszych rozwiązań z SO i Googli ale chyba coś źle próbuję, za każdą pomoc dzięki.

Kodu nie dorzucam bo to po prostu forma z treeview zdockowanym.

0

hi, to moja pierwsza odpowiedz na tym forum :)

Chyba (bo nie jestem pewien) co wewnatrz klikniemy to autorem zdarzenia jest TreeView.
chcac wykonac akcje dowolnym node uzyc:
AfterSelect
a na wezle ktory ma wewnatrz inne mozna cos takiego:

Kopiuj
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            var selectedNode = ((TreeView)sender).SelectedNode;
            int childsNumber = selectedNode.Nodes.Count;
            if (childsNumber > 0)
            {
                MessageBox.Show(selectedNode.ToString());
            }
        }
wojas666
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Łuków
  • Postów:177
0
Kopiuj
         int formsLocationX;
         int formsLocationY;

         private void Form1_Load(object sender, EventArgs e)
        {
            formsLocationX = this.Location.X;
            formsLocationY = this.Location.Y;
        }

        private void treeView1_Click(object sender, EventArgs e)
        {
            TreeNode treeNode = treeView1.SelectedNode;

            int x = treeNode.Bounds.X + treeNode.Bounds.Width;
            int y = treeNode.Bounds.Location.Y + treeNode.Bounds.Height;

            if ((System.Windows.Forms.Cursor.Position.X > x + formsLocationX) && (System.Windows.Forms.Cursor.Position.Y > y + formsLocationY))
            {
                MessageBox.Show("Selected Object");
            }
            else
            {
                MessageBox.Show("Selected Nodes");
            }
        }

Przyjmę zlecenia / projekty do wykonania w c#. Zainteresowanych zapraszam do konwersacji na PW.
wojas666
nie zapomnij dodać do referencji: "UIAutomationClient".

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.