Добавить комментарий

Double click

Обнаружил забавную вещь. Если в контроле treeview захотеть запретить uncheck некоторых узлов дерева, то это легко сделать BeforeCheck обработчиком. Однако, если работаешь под windows 2008 or Vista это не срабатывает, если кликаешь на чек бокс очень быстро. То есть, если раньше двойной клик сопровождался событием одинарного клика, то теперь этого не происходит. В результате галки, которые ты хочешь запретить снимать, спокойно снимаются. Конечно можно настроить длительность двойного клика в свойствах мыши, но это же строго индивидуально. И потом я видел человека, который жал на мышь быстрее, чем крайнее правое значение Fast. А еще двойной клик запатентован Microsoft. Может стоить подать на нее в суд за кривизну патента? Глядишь тогда отсужу миллион и куплю пару учебников по информатике. А то совсем отстал от жизни. Может я ошибаюсь?

       private void treeViewReplCards_BeforeCheck(object sender, TreeViewCancelEventArgs e)
        {
            if (e.Node.Tag.ToString().Contains("DA86FABF-4DD7-4A86-B6FF-C58C24D12DE2^")  //"FoldersCard" 
                || e.Node.Tag.ToString().Contains("05E4BE46-6304-42A7-A780-FD07F7541AF0^")  //"SavedSearch" 
                || e.Node.Tag.ToString().Contains("17F8F0B3-7E93-45E9-B250-EED4E93F3FA3^")  //"SavedView" 
                || e.Node.Tag.ToString().Contains("BE14D55D-92B7-4345-AD10-32588981F83D^")  //"RefTypes" 
                )
            {
                if (e.Node.Checked == true)
                {
                    e.Cancel = true;
                }
            }
        }

Прикрепленный файлРазмер
Package icon Delphi_VistaTreeViewBeforeClick.zip223.98 KB