Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Управление с клавиатуры ? При нажатии на кнопку проиходит какоето 
:(
    Опции темы
Miller_time
Дата 16.11.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



   
Код
  
 if (Keys.T)
            {
                dialog_1 = 5;

            }



Хочется сделать что при нажатии на клавишу проиходило какоето дествие. Может код не верен ? 
Заранее спасибо!

Это сообщение отредактировал(а) Miller_time - 16.11.2006, 10:53


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 16.11.2006, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



1) Полный код в студию.
2) Обрабатывать надо событие KeyDown, если у нас контрол или форма, и сравнивать e.KeyCode с Keys.T и так далее.


--------------------
user posted image
PM MAIL WWW   Вверх
Miller_time
Дата 16.11.2006, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



Это и есть весь кодsmile

 smile 


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
HalkaR
Дата 16.11.2006, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



Miller_time, обработчик KeyDown ставь в форме и у формы выставляй KeyPreweiv = true.
Код

private void form_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape)
                this.Close();
        }

PM MAIL   Вверх
Softaz
Дата 16.11.2006, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



Цитата(Miller_time @  16.11.2006,  10:52 Найти цитируемый пост)
Хочется сделать что при нажатии на клавишу проиходило какоето дествие.

Если ты хочешь, чтобы действие происходило незавимо, активен ли контрол или нет, то надо ставить hook

Добавлено @ 13:47 
#независимо


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
Miller_time
Дата 17.11.2006, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



Пробовал сделать выше перечисленно 
 
Код


        private void form_KeyDown(object sender, KeyEventArgs e)
        {
            while (true)
            {
                if (e.KeyCode == Keys.Escape)
                    this.Close();

            }
        }





Поставил в цикл, но все равно данный код не закрывает приложение, Что я не так сделал.

Код расположил в нутри 
public partial class Form1 : Form


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
Softaz
Дата 17.11.2006, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



Miller_time, запомни: если тебе надо закрыть форму по нажатию на кнопку, создавай тему типа "как закрыть форму, если нажата Esc", а не "Управление с клавиатуры" (непонятно как - может это у тебя резидентная программа без формы)

Поставь на форму кнопку типа "Закрыть"
Код

private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }


В пропертях формы укажи
Код

CancelButton = button2




--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
mr.DUDA
Дата 17.11.2006, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Miller_time @  17.11.2006,  08:20 Найти цитируемый пост)
Поставил в цикл,

убери цикл


--------------------
user posted image
PM MAIL WWW   Вверх
Miller_time
Дата 17.11.2006, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



Нет мне не нужна что бы моя программа закрывалсь, просто выше представлен пример я через него и опиываю !

Так у меня тоже закрывается.


Мне нужна что скажем при нажатии на клавишу  w изменялиь координаты картинки.


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
Miller_time
Дата 17.11.2006, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



Убрал цикл все ранво не помогло 


        private void form_KeyDown(object sender, KeyEventArgs e)
        {

            if (e.KeyCode == Keys.W)
            {
                pictureBox1.Left += 10;
            }

        }



Картинка не двигается и все .


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
HalkaR
Дата 17.11.2006, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



Miller_time, form.Invalidate() попробуй чтоли. smile
PM MAIL   Вверх
mr.DUDA
Дата 17.11.2006, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Чтоб форма обрабатывала клавиатурные сообщения (независимо от того, есть вложенные контролы или нет), нужно у формы выставить свойство KeyPreview=true

Добавлено @ 11:37 
HalkaR же об этом говорил  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
_Equilibrium_
Дата 17.11.2006, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.10.2006

Репутация: нет
Всего: нет



Код

   static int y = 65;
        
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.W)
            {
                pictureBox1.Location = new System.Drawing.Point(46, y); y -= 10;
            }
        }


Лол..  smile 
PM MAIL   Вверх
Miller_time
Дата 17.11.2006, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



Сделал все как сказанно, но не в какую не реагирует на клавиатуру.


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
HalkaR
Дата 17.11.2006, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 14
Всего: 42



Miller_time, form_keydown вообще срабатывает?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0645 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.