Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
power bi date hierarchy изменить язык
 
Похоже иерархия дат на русском под санкциями.
Power Query: как включить подсказки M языка
 
В Эксель 2021 года добавили подсказки языка М. Это называется M Intellisense и включается галкой в параметрах запроса редактора PQ. Правда если в файле будет около 20 запросов и более, то M Intellisense перестаёт работать, что довольно обидно.
Ложное срабатывание события change листбокса при запуске формы, Событие change листбокса ложно срабатывает, если курсор, при нажатии на кнопку запуска формы, стоит на месте появления листбокса
 
Упрощая реальную задачу до примера, потерял важную информацию. Уточняю. Листбокс с MultiSelect = 1, и ListStyle = 1 (галочки) используется для скрытия\отображения столбцов в таблице. При инициализации формы, если столбец виден, то элемент, соответствующий столбцу, выделяется. То есть ложно элемент может быть и выделен и снят. И изначальное состояние всех элементов (стоит \ не стоит галочка) может быть разным.
Цитата
sokol92 написал:
сбросить в обработчике этого события появившиеся галочки в Listbox.
Это как вариант, только придётся циклом по всем элементам вернуть значения к изначальным (если значения запомнить при запуске формы), т. к. при MultiSelect = 1 нельзя отследить какие именно элементы были нажаты (или можно?).  

Dima S, первый раз слышу про listview. С ходу сложно разобраться конечно. Нужно время, чтобы понять подходит ли эта штука.
Изменено: mvzobov - 15.08.2019 09:36:23
Ложное срабатывание события change листбокса при запуске формы, Событие change листбокса ложно срабатывает, если курсор, при нажатии на кнопку запуска формы, стоит на месте появления листбокса
 
Продолжаю постигать тайны объекта ListBox. На этот раз событие change листбокса ложно срабатывает, если курсор, при нажатии на кнопку запуска формы, находится на месте появления листбокса. Событие click тоже. В примере расписал подробнее и сделал гротескно большую кнопку. Стилистическое оформление формы и листбокса роли не играет, на свежесозданной форме с «заводскими» настройками эффект тот же.

Вариант решения: расположить кнопку и форму так, чтобы они не пересекались. Но в реальном файле, конечно же, самый лаконичный и правильный вариант их размещения – с пересечением.

Что можно попробовать? Может хитрые флаги, блокировку нажатий в первую секунду после запуска формы или ещё что?  
Событие change листбокса иногда запускается два раза подряд вместо одного
 
Цитата
Alemox написал: ... этот баг появляется при условии, если включен на Listbox SpecialEffect=0 и BorderStyle=1.
Изначально выставлял эти параметры вдохновившись статьёй о внешнем виде форм. Попробовал поменять настройки, как вы описали, и ситуация без изменений, продолжают двоить некоторые листбоксы.
Событие change листбокса иногда запускается два раза подряд вместо одного
 
Большое спасибо за ответы! Варианты решений интересные, но по каждому из ний есть «но»...
vikttur, хочется оставить модуль класса, т. к. это избавляет от необходимости дополнять код при создании новых листбоксов. Хотя в вашем варианте как я понял принципиально другой подход, с одним листбоксом из трёх столбцов (первый из которых скрыт). Нужно будет попробовать и оценить такой вариант в действии, на предмет удобства пользователя. Сообщение действительно для наглядности, пользователь его конечно видеть не должен.
Юрий М, с чекбоксами ситуация осложняется тем, что в реальной таблице сейчас 47 столбцов и они могут добавляться, удаляться, переставляться и кочевать из одной группы листбоксов в другую. Плюс 47 чекбоксов сложнее спозиционировать аккуратно, чем десяток листбоксов. Даже програмно. Вообщем я на форуме в одной из тем вычитал (кажется как раз в вашем сообщении), что вместо чекбоксов можно использовать листбокс с мультивыбором и галочкой. И это оказалось проще, удобнее, лаконичнее и вообще перевернуло моё сознание :) Так что к чекбоксам в этой задаче я уже не вернусь, к хорошему быстро привыкаешь.

Вариант решения проблемы. Навеяно заметкой БМВ
Цитата
БМВ написал: если сперва выделить бокс правой кнопкой, а после этого в нем проводить выбор, то повторного события не наблюдается.
Попробовал выделять каждый листбокс програмно, во время инициализации формы, через ListBox.SetFocus. И двойное срабатывание пропало. Ещё раз большое спасибо каждому за внимание к теме! Здорово, что с помощью форума удалось решить такую странную проблему.
Изменено: mvzobov - 13.08.2019 13:25:40 (слетела цитата)
Событие change листбокса иногда запускается два раза подряд вместо одного
 
Владимир, у меня в скачанном примере всегда после запуска формы дважды срабатывает листбокс № 2, 3 и 4 при первом нажатии. Три вопроса:
1) У вас тоже есть такая проблема?
2) Вы код оставили без изменений и только уменьшили размер файла?
3) Как вы уменьшили размер файла?
Событие change листбокса иногда запускается два раза подряд вместо одного
 
Попробовал. Реакция на это событие отсутствует. Я так понимаю, что событие Click для ListBox работает только при свойстве MultiSelect  = 0 (без мультивыбора).
Событие change листбокса иногда запускается два раза подряд вместо одного
 
Есть файл, в нём таблица. При нажатии на кнопку вызывается форма с листбоксами (листбоксы с мультивыбором и полем для галочки). Далее заголовки таблицы распределяются по листбоксам и, если столбец с заголовком таблицы виден, то в листбокс ставится галочка, если скрыт, то галочка не ставится. И вот форма в таком виде отобразилась перед пользователем. Пользователь должен нажимать на элементы листбоксов (ставить и убирать галочки) и скрывать/отображать таким образом столбцы в таблице. Код скрытия/отображение представлен в модуле класса.

В целом всё работает, но есть стабильно появляется «плавающая» ошибка (или глюк). Заключается она в том, что нажимаешь на какой-то элемент листбокса, а ничего не происходит, только листбокс мерцает и всё. Нажимаешь повторно и вот теперь элемент листбокса на который нажали меняет значение выделения. И так может быть с 2-мя, 3-мя листбоксами после запуска формы, потом глюк пропадает.  Я вывел сообщение, которое говорит нам о том, что событие изменения листбокса сработало и оказалось, что на самом деле не ничего не происходит, а наоборот, событие срабатывает 2 раза. То есть пользователь нажимает на элемент, его выделение меняется, макрос изменения запускается и после окончания макроса опять срабатывает событие изменения.

Как у меня возникает ошибка. Запускаю форму. Нажимаю на первый элемент в каждом листбоксе. На некоторых листбоксах событие вызовется 2 раза, что понятно по сообщению вылетающему 2 раза (сейчас на первом и на последнем листбоксе). Могу приложить видео или гифку такого двойного срабатывания, если это нужно.

Просьба помочь разобраться. Это глюк листбокса или ошибки в коде?
Страницы: 1
Наверх