none
Отлов правого клика мыши на TreeView через contexMenuStrip RRS feed

  • Вопрос

  • Когда я нажимаю на TreeView правой кнопкой мыши должно выпадать contexMenuStrip. Проблема такая, когда по элементам дерева щелкаю, получается что клиент получает элемент тот который был нажат левой кнопкой мыши, а не правой, по идее же должно возращать то что щелкнул правой кнопкой. Как поймать координаты? я пробывал через contexMenuStrip, не получилось. Честно через Win32Api совершенно этого делать не охота, хочется просто и легко! подскажите пожалуйста!

    P.S. Если что то не понятно, напишите, сразу же отпишусь, а то не знаю как правильно сказать!

    • Изменено Super_draG 19 июня 2010 г. 23:58 Не дописал
    • Перемещено Tagore Bandlamudi 1 октября 2010 г. 21:48 MSDN Forums consolidation (От:Visual C#)
    19 июня 2010 г. 22:41

Ответы

  • Непонятно всё. Что вы хотите сделать?

    Если хотите прикрутить контекстное меню к дереву, то установите для него свойство ContextMenuStrip.

    Если хотите прикрутить контекстное меню к отдельным узлам, то установите для каждого узла свойство ContextMenuStrip

    Если хотите различать левый и правый клик по узлам, то обработайте событие NodeMouseClick

        private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
          if (e.Button == System.Windows.Forms.MouseButtons.Left)
          {
            //....
          }
          if (e.Button == System.Windows.Forms.MouseButtons.Right)
          {
            //..
          }
        }
    Непонятно, какого результата вы хотите добиться.
    • Помечено в качестве ответа I.Vorontsov 21 июня 2010 г. 11:15
    20 июня 2010 г. 8:06

Все ответы

  • Непонятно всё. Что вы хотите сделать?

    Если хотите прикрутить контекстное меню к дереву, то установите для него свойство ContextMenuStrip.

    Если хотите прикрутить контекстное меню к отдельным узлам, то установите для каждого узла свойство ContextMenuStrip

    Если хотите различать левый и правый клик по узлам, то обработайте событие NodeMouseClick

        private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
          if (e.Button == System.Windows.Forms.MouseButtons.Left)
          {
            //....
          }
          if (e.Button == System.Windows.Forms.MouseButtons.Right)
          {
            //..
          }
        }
    Непонятно, какого результата вы хотите добиться.
    • Помечено в качестве ответа I.Vorontsov 21 июня 2010 г. 11:15
    20 июня 2010 г. 8:06
  • Простите что не описал проблему подробно, но ваш ответ был полон и ясен, что помог решению моей проблемы! Спасибо большое!
    21 июня 2010 г. 12:34