Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > проблемма с KeyDown


Автор: seacher 2.6.2007, 12:40
 mr.DUDA,
Цитата

Проблема в том, что некоторые клавиши (Tab, стрелки) вынесены в отдельную группу, и управляют фокусом на форме. Чтобы этого не происходило, надо подписаться на событие PreviewKeyDown контролов (кнопок и др.) и в обработчике поставить:

Код

1:  e.IsInputKey = true;



можно подробней, а то я не понял  ((



Автор: SpaceSpace 4.6.2007, 14:42
Hi. Давай попишем волшебные функции.
(только почитай сам что такое делегаты и события - литературы хватает)

Во превых, напишем свой собственный обработчик события

Код

        private void MyPreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            e.IsInputKey = true;
        }


Во вторых, функция которая пудет подписывать все контролы формы на событие

Код

        private void AddHandlersToControls()
        {  
           // перебираешь все котролы
            foreach(Control control in this.Controls )
               // подписываешся на обработку события
                control.PreviewKeyDown += new PreviewKeyDownEventHandler(MyPreviewKeyDown);
        }


Ну и последнее:
засовываешь эту функцию в конструктор формы 
Код

        public Form1()
        {
            InitializeComponent();
            AddHandlersToControls();
        }

Автор: seacher 9.6.2007, 19:06
большое спасибо SpaceSpace! все работает! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)