Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Обработать 'F2'


Автор: Rockie 11.6.2008, 22:11
Обрабатываю нажатие F2

Код

       private void treeView1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((char)e.KeyChar == (char)Keys.F2)
            {
                  // код
            }
        }


По нажатию F2 ничего не происходит, зато функция отлично работает при нажатии 'q' smile. Как мне нормально обработать клавишу F2, либо "стандартных" стредств нет и нужно перехватывать WM_KEYDOWN, как в примере: http://msdn.microsoft.com/en-us/library/ms171537.aspx


Автор: vponomarov 11.6.2008, 23:20
вот так я обрабатывал Alt+F4
тебе только нужно узнать код клавиши Ф2
Код

public void MainForm_KeyDown(object sender, KeyEventArgs e)
{
            if (e.Alt)
            {
                if (e.KeyValue == 115)
                    Application.Exit();
                e.Handled = true;
                return;
            }
}

Автор: Azzdorf 12.6.2008, 08:12
Цитата(vponomarov @ 11.6.2008,  23:20)

тебе только нужно узнать код клавиши Ф2

F2 - 113

и если нуда по быстрячку узнать код - сваргань себемини прогу в который будет один текстбок и у него один обрадотчик события smile 

Код


...
        txtbURL.KeyDown += new KeyEventHandler(txtbURL_KeyDown);
...
     private void txtbURL_KeyDown(object sender, KeyEventArgs e)
    {
        txtbURL.Text = e.KeyValue.ToString();
    }

Автор: QryStaL 12.6.2008, 10:11
Цитата(vponomarov @  11.6.2008,  23:20 Найти цитируемый пост)
тебе только нужно узнать код клавиши Ф2


Зачем эти коды, если есть перечисление?
Код

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.F2)
    {
    }
}


Автор: Rockie 12.6.2008, 12:06
QryStaL, у меня он в этом случае по 'Q' срабатывает)
Спасибо! Будет ли этот код 113 всегда означать F2 на всех машинах с ОС windows?

Автор: QryStaL 12.6.2008, 12:18
Цитата(Rockie @  12.6.2008,  12:06 Найти цитируемый пост)
у меня он в этом случае по 'Q' срабатывает

Каким образом? У меня все нормально отрабатывает.

Автор: Rockie 12.6.2008, 15:19
QryStaL, можно поинтересоваться, какая у вас ОС и какие раскладки клавиатуры у вас установлены(Control panel-> Regional and Language Options-> Language-> Details)? И какие версии .NET, если можно?

Автор: QryStaL 12.6.2008, 15:43
Rockie, Языки русский, английский и украинский; XP SP2. Framework стоит 1.1, 2.0, 3.5, пробовал под всеми - везде корректно отрабатывает.

Автор: Azzdorf 12.6.2008, 20:58
Цитата(Rockie @ 12.6.2008,  12:06)
Спасибо! Будет ли этот код 113 всегда означать F2 на всех машинах с ОС windows?

ТАКИ ДА smile , по крайней мере за 1,5 года меня это не разу не подводило)))

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