Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
3 / 3 / 3
Регистрация: 26.09.2009
Сообщений: 77
1

Кнопка, не принимающая фокус

17.09.2016, 11:40. Показов 975. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу для панельного компьютера.
Для редактирования числовых значений ячеек таблицы DataGridView сделал панель с цифровыми кнопками и стрелками.
Однако, есть проблема. При попытке кнопками со стрелками перемещать курсор в ячейке таблицы, таблица теряет фокус, получается ерунда. Пробовал использовать кнопки из ToolStrip, которые не получают фокус, но они некрасивые (без бордюров) и их не расставить ромбиком (как стрелки на клавиатуре).
Подскажите, как решить проблему.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2016, 11:40
Ответы с готовыми решениями:

Форма, не принимающая фокус
Здравствуйте! Подскажите, как сделать форму, которая не будет принимать фокус ни по щелчку, ни по...

Чтобы кнопка не получала фокус
Собственно вопрос, сделал игру змейка(GDI) змейка ездит по форме, при нажатии на клавишу...

Когда кнопка мыши зажата, событие попадание курсора мыши в фокус контрола не работает
Есть несколько контролов на форме, на все есть событие возникающее когда мышь попадает на этот...

фокус и кнопка
привет друзья! если я добавляю в Form1 любой элемент кнопку картинку или ещё что-то то нажатие...

2
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
17.09.2016, 12:05 2
Лучший ответ Сообщение было отмечено Алексей71 как решение

Решение

Алексей71,
примерный код для кнопки Вверх
C#
1
2
3
4
5
if (dataGridView1.CurrentCell != null & dataGridView1.CurrentCell.RowIndex > 0)
{
    dataGridView1.CurrentCell = dataGridView1[dataGridView1.CurrentCell.ColumnIndex, dataGridView1.CurrentCell.RowIndex - 1];
    dataGridView1.BeginEdit(false);
}
1
3 / 3 / 3
Регистрация: 26.09.2009
Сообщений: 77
17.09.2016, 20:44  [ТС] 3
Вверх, работает, правда на мгновение пропадает фокус из таблицы, но это терпимо.
А вот при попытке переместить курсор в редактируемой ячейки влево или вправо по редактируемому значению - облом.
Я правда, пользуюсь отправкой сообщения о нажатой кнопке:
C#
1
2
3
4
private void bArrLeft_Click(object sender, EventArgs e)
{
    SendKeys.Send("{LEFT}");
}
Может, стоит, действительно, разбирать вручную, где находился курсор в ячейке, программно его перемещать и возвращаться в редактирование таблицы...

Добавлено через 7 часов 51 минуту
В общем поставил label с картинками кнопок. Обрабатываю MouseDown, MouseUp, MouseEnter, MouseLeave, меняя цвет фона и картинку, чтобы метка ожила. Ну и дальше просто:

C#
1
2
3
4
        private void lLeft_Click(object sender, EventArgs e)
        {
            SendKeys.Send("{LEFT}");
        }
0
17.09.2016, 20:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.09.2016, 20:44
Помогаю со студенческими работами здесь

Когда фокус на форме поиска, загорается кнопка поиска
Здравствуйте, помогите пожалуйста, задался идеей сделать: Если фокус на форме поиска(то бишь мы...

Перегрузка, не принимающая значений
static void Main(string args) { string words = Console.ReadLine(); ...

Функция, принимающая 4 указателя
Написать функцию, принимающие 4 указателя на вещественные переменные и заменяющую значения второй...

Страничка, принимающая запрос
Здравствуйте, поможете немного? Делаю сайт, нужна страничка, на которую буду отправлять post...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru