Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2012, 23:11   #1
Lui
Пользователь
 
Регистрация: 03.11.2011
Сообщений: 32
По умолчанию Заблокировать на компоненте клавиатуру

Прграммирую под WIN CE VS2008C#
Не получается сделать нормальный перехват клавишь с DATAGRID, это тот компонент который берёт управление вводу клавишь на себя.....

Поэтому писал его метод Keydown перехват на клавишу LEFT, перехват срабатывает, а блок на то что передаётся внуть ГРИД нет, блок ставил с помощью e.Handled=true, но при нажатии клавиши Left, фокус всеравно уходит влево в гриде....

Это код:
private void dataGrid1_KeyDown(object sender, KeyEventArgs e)
{
e.Handled=true
if (e.KeyValue == (char)Keys.Left)
{
textBox1.Text = textBox1.Text + Convert.ToString(e.KeyValue);

}
}

И ещё e.Handled=true, я поставил во всех методаха грида кей прес кей даун, кей ап, но клавиши всеравно срабатывают на данный грид.....

Подскажите как можно организовать блокирование клавиатуры для грида, вернее некоторых его клавишь, интерисует блок для LEFT и RIGHT, отловить смогу и нужное действие поставить, Вот только вопрос какое действие
Lui вне форума Ответить с цитированием
Старый 16.02.2012, 20:57   #2
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

Попробуй дорбавить вот это в класс формы.
Тут только блокировка для клавиши влево, но я уверен ты догадаешься что надо дописать чтобы заблокировать нужные тебе клавиши.
Код:
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if ((keyData == Keys.Left)&&(dataGridView1.Focused))
            {
               return true;
            }
            return false;
        }
P.S. решение я подсмотрел у rUs_LAN в одной из тем.
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Старый 17.02.2012, 06:21   #3
Lui
Пользователь
 
Регистрация: 03.11.2011
Сообщений: 32
По умолчанию

Цитата:
Сообщение от KobolD Посмотреть сообщение
Попробуй дорбавить вот это в класс формы.
Тут только блокировка для клавиши влево, но я уверен ты догадаешься что надо дописать чтобы заблокировать нужные тебе клавиши.
сори за тупость, а куда надо вставить данный код чтобы переопределить метод?....А то пишет не найден метод для переопределения.
Lui вне форума Ответить с цитированием
Старый 17.02.2012, 15:02   #4
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

Код:
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
                protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if ((keyData == Keys.Left)&&(dataGridView1.Focused))
            {
               return true;
            }
            return false;
        }
    }
}
Ну соответсвенно форма с датагридом принадлежит этому классу форм.
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заблокировать клавиатуру? BaRSyk174 Общие вопросы Delphi 6 26.02.2011 00:34
Заблокировать клавиатуру Son Win Api 5 12.03.2010 04:27
можно ли в компоненте updown заблокировать up или down edik Общие вопросы Delphi 5 22.12.2009 21:37
Как заблокировать клавиатуру? dradysman Общие вопросы Delphi 3 30.11.2009 18:34
Хук на клавиатуру xshStasX Помощь студентам 1 09.08.2008 16:56