10911 / 5606 / 1423
Регистрация: 05.10.2016
Сообщений: 15,845
1

Временное отлючение прорисовки TextBox в форме MS Access

19.12.2017, 11:45. Показов 2331. Ответов 68
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всех приветствую.
Что то я встал в тупик и прошу помощи добрых форумчан.

Итак:
на форме есть мультилайновый TextBox с довольно длинным тестом. А сверху него кнопки для авт. встаки в него (в позицию курсора) разных "текстовых значений"
Что происходит:
Я нажимаю на кнопку ... TextBox теряет фокус и прыгает на начало (перематывая ScrollБар в НОЛЬ позишен) - код вставляет нужный текст, и восстанавливает позицию курсора и положение вертикального ScrollБара.

Всё вроде чудесно!
Но хотелось бы избавиться от перемаргивания TextBox-а (мелочь) но не приятно.
Путь к совершенству бесконечен

Прошу помощи с решением.
Зрение всем признателен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2017, 11:45
Ответы с готовыми решениями:

Загрузка данных из Access в TextBox 'ы на форме
Изучая вот эту статью возникла необходимость прочитать данные из таблицы и подставить эти данные в...

Текст в Label на прозрачной форме, качество прорисовки оставляет желать лучшего
Возникла нужда сделать показ инфы на прозрачной форме,но надписи стали выглядеть ужасно,кто знает...

Microsoft Access запросы Update - Запрос повреждён - ошибка 3340 - временное решение!
День добрый всем. Развлекался тут пару дней. Внезапно перестали работать запросы Update с...

TextBox color - Как окрасить на форме TextBox от разного значения
Всем привет У меня вопрос по VB. На форме много TextBox и окрашивать их по индивидуальному...

68
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
19.12.2017, 11:56 2
Eugene-LS,

Сделайте контрол Надпись (Label) вместо кнопки.
Сымитируйте кнопку визуальными эффектами при нажатии.
Фокус TextBox терять не будет.
0
10911 / 5606 / 1423
Регистрация: 05.10.2016
Сообщений: 15,845
19.12.2017, 12:24  [ТС] 3
Цитата Сообщение от Capi Посмотреть сообщение
делайте контрол Надпись (Label) вместо кнопки.
Сымитируйте кнопку визуальными эффектами при нажатии.
Спасибо!

Не совсем понял - КАК?
Вежливо соблюдаю правили форума ...
Выкрадываю исходный материал.

Покажите пожалуйста на моём примере.
Вложения
Тип файла: zip DatabaseTextBoxScroll_Eugene-LS_v00.zip (32.9 Кб, 4 просмотров)
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
19.12.2017, 12:32 4
Цитата Сообщение от Eugene-LS
Покажите пожалуйста на моём примере.
Хорошо.
А там какая версия? У меня 2007-ой.
Или просто сделать свой, если Ваш не смогу открыть?

Примерно в течение часа. Пока не у компьютера.
1
459 / 246 / 15
Регистрация: 29.10.2014
Сообщений: 1,079
19.12.2017, 12:40 5
Цитата Сообщение от Eugene-LS Посмотреть сообщение
и прыгает на начало
вот позицию курсора в ленточной форме можно запомнить(чтобы потом вернуться): Me.CurrentRecord, а вот что там с текстом? наверное прыгать будет обязательно и нужен возврат.
1
10911 / 5606 / 1423
Регистрация: 05.10.2016
Сообщений: 15,845
19.12.2017, 12:45  [ТС] 6
Цитата Сообщение от Capi Посмотреть сообщение
У меня 2007-ой.
Лепил на MSA 2010 - на 2007 должно пойти (там ничего лишнего + несколко API-шек)

Добавлено через 4 минуты
Цитата Сообщение от commun Посмотреть сообщение
вот позицию курсора в ленточной форме можно запомнить(чтобы потом вернуться)
У формы есть hWnd - а у контрола нет.
Формы я давно умею "крутить" - вот разобрался с TextBox (вроде).

Вопрос в другом:
Как отключить его перерисовку на время потери фокуса и восстановления scrollbar-а и положения курсора?
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
19.12.2017, 14:04 7
Лучший ответ Сообщение было отмечено Eugene-LS как решение

Решение

Eugene-LS,

Вот.
Справа - Ваша кнопка, слева - моя надпись.
При нажатии левой кнопкой мыши на надпись -
в любом месте текстбокса (по текущему курсору) вставляется пробный фрагмент,
курсор в текстбоксе остается на прежнем месте (это как вариант, можно в конец вставленного фрагмента пустить).
Это просто так, лишь бы чтобы что-то происходило при нажатии,
а основное - показать, как надпись притворяется кнопкой, чтобы не уходил курсор с текстбокса.
Вложения
Тип файла: zip DatabaseTextBoxScroll_Eugene-LS_v00_01.zip (34.7 Кб, 5 просмотров)
1
10911 / 5606 / 1423
Регистрация: 05.10.2016
Сообщений: 15,845
19.12.2017, 14:19  [ТС] 8
Цитата Сообщение от Capi Посмотреть сообщение
Вот.
Справа - Ваша кнопка, слева - моя надпись.
Качаю ...смотрю ....

Добавлено через 4 минуты
Цитата Сообщение от Capi Посмотреть сообщение
показать, как надпись притворяется кнопкой, чтобы не уходил курсор с текстбокса.
У меня MSA-2010 x86
И к сожалению, не сработало.
Положения курсора и полосы прокрутки сбрасываются на НОЛЬ при нажатии на "псевдо кнопку".

Но всё равно спасибо!.

Добавлено через 4 минуты
Capi, причем наблюдаю интересное поведение - если курсор был в конце текста - идёт сброс на прибл 50% положения скрола .... - щас код посмотрю....
Может я тороплюсь соишком с выводами.
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
19.12.2017, 14:23 9
Цитата Сообщение от Eugene-LS Посмотреть сообщение
к сожалению, не сработало.
Положения курсора и полосы прокрутки сбрасываются на НОЛЬ при нажатии на "псевдо кнопку".
При нажатии на надпись?
Маловероятно.
Надпись фокус на себя не забирает.
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Но всё равно спасибо!.
Цитирую Вас же: "Для этого есть специальная кнопочка".

Добавлено через 2 минуты
Цитата Сообщение от Eugene-LS Посмотреть сообщение
причем наблюдаю интересное поведение - если курсор был в конце текста - идёт сброс на прибл 50%
Для начала поработайте с текстом в начальной части текстбокса - не прокручивая далеко вглубь.
1
10911 / 5606 / 1423
Регистрация: 05.10.2016
Сообщений: 15,845
19.12.2017, 14:27  [ТС] 10
Цитата Сообщение от Capi Посмотреть сообщение
Цитирую Вас же: "Для этого есть специальная кнопочка".
Так давно уже...
Миниатюры
Временное отлючение прорисовки TextBox в форме MS Access  
0
10911 / 5606 / 1423
Регистрация: 05.10.2016
Сообщений: 15,845
19.12.2017, 14:48  [ТС] 11
Дорогая и глубокоуважаемая Capi, спасибо большое за ваше внимание к моему вопросу.
Не получилось = ну бывает ...
Не страшно.
(я ещё плюсиков накликал - мне не жалко и даже приятно)

Надеюсь на знающие головы кои тут (надеюсь) бывают.
Повторяю вопрос:
Временное отлючение прорисовки TextBox в форме MS Access
Почему и зачем начертано выше.

Ещё раз спасибо - Пока!
0
Эксперт MS Access
26818 / 14497 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
19.12.2017, 15:06 12
Лучший ответ Сообщение было отмечено Eugene-LS как решение

Решение

Цитата Сообщение от Eugene-LS Посмотреть сообщение
Временное отлючение прорисовки TextBox в форме MS Access
Visual Basic
1
Me.Painting=False 'True
1
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
19.12.2017, 15:07 13
Eugene-LS,

Моя надпись - СПРАВА, с надписью НеКнопка.
Второпях не так Вас сориентировала.
1
10911 / 5606 / 1423
Регистрация: 05.10.2016
Сообщений: 15,845
19.12.2017, 15:12  [ТС] 14
mobile, Думал я и про .Painting - это на уровне формы ..
А хотелось бы на уровне контрола (API) вариантик.
Спасибо за идею и участие.

... кстати щас попробую ... а вдруг!???
0
10911 / 5606 / 1423
Регистрация: 05.10.2016
Сообщений: 15,845
19.12.2017, 15:19  [ТС] 15
Цитата Сообщение от Capi Посмотреть сообщение
Моя надпись - СПРАВА, с надписью НеКнопка.
Это где?
Миниатюры
Временное отлючение прорисовки TextBox в форме MS Access  
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
19.12.2017, 15:23 16
Да, стрелка красная указывает верно.
0
842 / 473 / 79
Регистрация: 18.05.2016
Сообщений: 1,255
Записей в блоге: 4
19.12.2017, 15:23 17
Цитата Сообщение от commun Посмотреть сообщение
а вот что там с текстом?
У поля есть свойство SelStart. Отвечает за позицию текстового курсора в тексте. Через него можно и узнать текущее положение и задать его
0
Эксперт MS Access
26818 / 14497 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
19.12.2017, 15:29 18
Цитата Сообщение от Eugene-LS Посмотреть сообщение
хотелось бы на уровне контрола (API) вариантик.
Ненадежно. Это же не настоящие окна и их Hwnd не всегда определяется правильно. Более или менее устойчиво если при фокусе в текстбоксе включить таймер и процедуре таймера смотреть hwnd.
А также: цитирую из другого форума
откуда взялись предположения, что элементы управления на акцессовской форме оконные, что окон много, HWND неизменны и т. д.? Возьмите Spy++ или аналог (WinSight32 и т. п.) для начала и посмотрите, из чего состоит форма.

Насчёт других путей: возьмите Inspect (https://msdn.microsoft.com/en-... s.85).aspx), и если информация, им выдаваемая, (п)окажется полезной, подключите к проекту библиотеку Microsoft Office xx.x Object Library и используйте скрытый в ней интерфейс IAccessible для получения доступа к этой информации
Захотите ли идти таким сложным путем?

Я использую апи для контролов при необходимости подвинуть внешнюю форму к контролу, например в полю табличной/ленточной формы, или к выделенному значению списка. Ну тут по другому и не подойдешь.
0
10911 / 5606 / 1423
Регистрация: 05.10.2016
Сообщений: 15,845
19.12.2017, 15:47  [ТС] 19
Цитата Сообщение от mobile Посмотреть сообщение
Ненадежно. Это же не настоящие окна и их Hwnd не всегда определяется правильно. Более или менее устойчиво если при фокусе в текстбоксе
Совершенно в дырочку!
Вопрос не простой - признаю.
hWnd (дескриптор окна TextBox в форме) можно выкрутасами получить пока в нём фокус.....
А была бы лёгкая задачка - я бы и не спрашивал.

Цитата Сообщение от mobile Посмотреть сообщение
А также: цитирую из другого форума
Я это уже читал ...

Цитата Сообщение от mobile Посмотреть сообщение
Захотите ли идти таким сложным путем?
Не факт.
И так всё замечательно работает, но вот просто хочется идеала .

Пёфекционизм = болезнь = согласен.

Данное пишу для себя любимого, и жил же как то жо этого ....
Ладно.
Больше глупых, ненужных и вредных вопросов задавать не стану.
Прошу простить великодушно.
Вмноват - исправлюсь (постараюсь).
0
842 / 473 / 79
Регистрация: 18.05.2016
Сообщений: 1,255
Записей в блоге: 4
19.12.2017, 15:56 20
Эх... А моё SelStart проигнорировали. надписи, api, hwnd. Вот же вас в дебри понесло...
0
19.12.2017, 15:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.12.2017, 15:56
Помогаю со студенческими работами здесь

Создать n TextBox на второй форме. n вводится в TextBox на первой
Проблема: на первой форме есть textBox в него вводи целое число n, нажимаем ок, и появляется вторая...

Создать PictureBox на второй форме с размерами из TextBox'ов, расположенных на первой форме
Добрый вечер, столкнулся с проблемой. У меня есть 2 TextBox'a, они находятся на первой форме. Мне...

Добавление текста из TextBox на одной форме в ComboBox на другой форме
Добрый вечер. У меня небольшая проблема. Я сделал кнопку "Настройки" что бы открывался User Form...

После нажатия кнопки в первой форме, становится невидимым TextBox во второй форме
у меня 2 формы .в первой форме, после нажатия кнопки открывается вторая форма. как сделать чтобы...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

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