Конфликт событий формы и контрола

Girevik
Дата: 13.01.2010 17:05:00
Нужно сделать свою отмену последних действий на форме (по нажатию CTRL+Z).
НО! при нажатии CTRL+Z срабатывает событие windows по отмене действий в текущем контроле. Как отменить виндовое событие?
ShortcutsEnabled выставить в false не подойдёт, т.к. пропадут полезные стандартные события (например CTRL+V и CTRL+С)
Iktomy
Дата: 13.01.2010 19:03:11
В свойствах контролов свойство AcceptReturn поставить False
Girevik
Дата: 14.01.2010 09:12:30
msdn
Получает или задает значение, указывающее, что происходит в многострочном элементе управления TextBox при нажатии клавиши ENTER: создается новая строка текста или активируется кнопка стандартного действия формы.


это что то не то....
да и у меня и так в false стоит по умолчанию...
FAndrew
Дата: 14.01.2010 09:49:11
У формы есть свойство KeyPreview, по умолчанию False.
Если его выставить в True, то нажатия кнопок будут сначала обрабатываться формой.
Нужно перехватывать требуемую комбинацию, обрабатывать и отменять нажатие, что бы не срабатывало еще и на контроле.
Дикий Билл
Дата: 14.01.2010 10:34:53
FAndrew
У формы есть свойство KeyPreview, по умолчанию False.
Если его выставить в True, то нажатия кнопок будут сначала обрабатываться формой.
Нужно перехватывать требуемую комбинацию, обрабатывать и отменять нажатие, что бы не срабатывало еще и на контроле.

Бесполезно.
        If e.Control AndAlso e.KeyCode = Keys.Z Then
            e.Handled = True
            e.SuppressKeyPress = True
            MsgBox("sdf")
        End If
системное Ctrl+Z все равно срабатывает. Похоже его не отменишь.
Дикий Билл
Дата: 14.01.2010 10:45:00
А вообще по моему не нужно делать отмену на Ctrl+Z, все-таки все пользователи привыкли к определенному поведению, а тут облом, оказывается стандартное сочетание клавишь отменяет совсем другое, то чего я может и не хотел отменять.
Girevik
Дата: 14.01.2010 10:54:50
Дикий Билл
А вообще по моему не нужно делать отмену на Ctrl+Z, все-таки все пользователи привыкли к определенному поведению, а тут облом, оказывается стандартное сочетание клавишь отменяет совсем другое, то чего я может и не хотел отменять.


Стандартная отмена отменяет только действие текущего контрола...
Мне нужна последовательная отмена всех изменений на форме...
Girevik
Дата: 14.01.2010 10:56:07
FAndrew
У формы есть свойство KeyPreview, по умолчанию False.
Если его выставить в True, то нажатия кнопок будут сначала обрабатываться формой.
Нужно перехватывать требуемую комбинацию, обрабатывать и отменять нажатие, что бы не срабатывало еще и на контроле.


как в обработчике формы отменить событие, чтобы оно не срабатывало на контроле?
Дикий Билл
Дата: 14.01.2010 10:58:53
Girevik
Стандартная отмена отменяет только действие текущего контрола...
Мне нужна последовательная отмена всех изменений на форме...
ну а вдруг пользователь привык к стандартному поведению, хотел отменить только в одном контроле, а тут бах! все что он полчаса набивал отменилось!
Лучше выбрать другое сочетание клавиш.
Girevik
Дата: 14.01.2010 11:08:07
1. так по ТЗ
2. будет возврат отмены ;)
3. моя отмена на текущем контроле так же отрабатывать будет... проблем не возникнет