Ошибка повторно включает TextBox, если у него есть Cond. Форматирование? - PullRequest
1 голос
/ 07 апреля 2011

Я думаю, что смотрю непосредственно на ошибку Access 2003.Вот что я сделал (я думаю):

  1. Я разрабатываю непрерывную форму (т.е. несколько записей на странице).
  2. У меня есть несвязанное текстовое поле на фоне деталей.раздел.В Свойства данных у меня есть Включено = Нет и Заблокировано = Да.(Другими словами, я не хочу, чтобы пользователь выбирал его. Я хочу только его для цвета фона)
  3. Это текстовое поле также имеет некоторое условное форматирование для изменения цвета фона для этой строки.(например, если мы некоторое время не разговаривали с этим клиентом, фон для этой записи красный)
  4. Если я выберу запись, в которой активно условное форматирование (т. е. фон красный), я могу на самом деленажмите на это текстовое поле.Конечно, я мало что могу сделать, но этого не должно произойти, и, конечно, это может сбить с толку конечных пользователей.

Кто-нибудь еще видел это?Какой у вас обходной путь?

Ответы [ 3 ]

3 голосов
/ 07 апреля 2011

Enabled - это свойство, которым можно управлять с помощью условного форматирования. По умолчанию при добавлении нового условия для свойства Enabled устанавливается значение True. Если вы не хотите, чтобы ваш элемент управления был включен, вы должны явно установить Enabled = False в правиле условного форматирования.

Свойство переключается с помощью кнопки в правом нижнем углу диалогового окна условного форматирования. Это легко пропустить (я забыл об этом все время).

Лично я думаю, что свойство должно быть трехсторонним: True, False или Inherit (с Inherit по умолчанию). К сожалению, Access заставляет вас быть явным при добавлении правил условного форматирования и указывать, должно ли правило делать элемент управления включенным или отключенным.

1 голос
/ 07 апреля 2011

Вот мой обходной путь (я ждал, чтобы кто-нибудь еще предложил что-то лучшее. Очевидно, нет.)

  1. В моем условно отформатированном текстовом поле добавьте процедуру обработки событий для GotFocus. Введите этот код: Me.Txt_FocusHere.SetFocus.
  2. Создайте 2-е несвязанное текстовое поле где-нибудь на форме. Сократите его, пока он не станет толщиной в 1 линию. Назовите это Txt_FocusHere.

Таким образом, всякий раз, когда пользователь нажимает на цветной фон, фокус немедленно переносится на это фиктивное текстовое поле, которое не может хранить никаких данных, и настолько маленькое, что пользователь не видит мигающий курсор.

0 голосов
/ 07 апреля 2011

Я успешно использовал метод на следующей странице: http://www.mvps.org/access/forms/frm0047.htm - «Изменение цвета фона текущей записи в непрерывной форме»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...